def create_question_group(self, quiz_groups, **kwargs):
if not isinstance(quiz_groups, list) or not quiz_groups:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if not isinstance(quiz_groups[<NUM_LIT:0>], dict):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>param_list = ['<STR_LIT:name>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL>if not any(param in quiz_groups[<NUM_LIT:0>] for param in param_list):<EOL><INDENT>raise RequiredFieldMissing("<STR_LIT>")<EOL><DEDENT>kwargs["<STR_LIT>"] = quiz_groups<EOL>response = self._requester.request(<EOL>'<STR_LIT:POST>',<EOL>'<STR_LIT>'.format(self.course_id, self.id),<EOL>_kwargs=combine_kwargs(**kwargs)<EOL>)<EOL>response_json = response.json()<EOL>response_json['<STR_LIT>'][<NUM_LIT:0>].update({'<STR_LIT>': self.id})<EOL>return QuizGroup(self._requester, response_json.get('<STR_LIT>')[<NUM_LIT:0>])<EOL>
Create a new question group for the given quiz id

:calls: `POST /api/v1/courses/:course_id/quizzes/:quiz_id/groups \
<https://canvas.instructure.com/doc/api/quiz_question_groups.html#method.quizzes/quiz_groups.create>`_

:param quiz_groups: The name, pick count, question points,
    and/or assessment question bank id.
    All of these parameters are optional, but at least one must exist
    (even if empty) to receive a response.
    The request expects a list, but will only create 1 question group per request.
:type quiz_groups: list[dict]

:returns: `QuizGroup` object
:rtype: :class:`canvasapi.quiz_group.QuizGroup`