Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成一个包含一个键和多个值的字典。值应该是一个列表_Python - Fatal编程技术网

Python 生成一个包含一个键和多个值的字典。值应该是一个列表

Python 生成一个包含一个键和多个值的字典。值应该是一个列表,python,Python,输出如下: def gen_stu(): students_names=['venkatesh','kiran','ravi'] # assigning the names of students student_marks=[] student_names_marks={} for i in students_names: for m in range(1,3): # asking user for marks for respective st

输出如下:

def gen_stu():
    students_names=['venkatesh','kiran','ravi'] # assigning the names of students
    student_marks=[]
    student_names_marks={}
    for i in students_names:
        for m in range(1,3): # asking user for marks for respective students
            student_names_marks[i]=int(input(f'enter the marks of {i} for subject {m}: '))
            student_marks.append(student_names_marks[i])
            student_names_marks[i]=student_marks
    return student_names_marks
print(gen_stu())
我得到的输出是:

enter the marks of venkatesh for subject 1: 1
enter the marks of venkatesh for subject 2: 2
enter the marks of kiran for subject 1: 3
enter the marks of kiran for subject 2: 4
enter the marks of ravi for subject 1: 5
enter the marks of ravi for subject 2: 6
但我需要输出为:

{'venkatesh': [1, 2, 3, 4, 5, 6], 'kiran': [1, 2, 3, 4, 5, 6], 'ravi': [1, 2, 3, 4, 5, 6]}

带回向字典添加键的缩进:

{'venkatesh': [1, 2], 'kiran': [3, 4], 'ravi': [5, 6]}
def gen_stu():
学生名称=['venkatesh'、'kiran'、'ravi']#指定学生名称
学生分数=[]
学生姓名分数={}
以学生姓名填写的i:
对于范围(1,3)内的m:#向用户询问各自学生的分数
学生姓名分数[i]=int(输入(f'输入科目{m}:'的{i}分数)
学生分数。追加(学生姓名分数[i])

学生姓名标记[i]=学生标记#返回向字典添加键的缩进:

{'venkatesh': [1, 2], 'kiran': [3, 4], 'ravi': [5, 6]}
def gen_stu():
学生名称=['venkatesh'、'kiran'、'ravi']#指定学生名称
学生分数=[]
学生姓名分数={}
以学生姓名填写的i:
对于范围(1,3)内的m:#向用户询问各自学生的分数
学生姓名分数[i]=int(输入(f'输入科目{m}:'的{i}分数)
学生分数。追加(学生姓名分数[i])

学生姓名分数[i]=学生分数使用
dict.setdefault

Ex:

def gen_stu():
    students_names=['venkatesh','kiran','ravi'] # assigning the names of students
    student_marks=[]
    student_names_marks={}
    for i in students_names:
        for m in range(1,3): # asking user for marks for respective students
            student_names_marks[i]=int(input(f'enter the marks of {i} for subject {m}: '))
            student_marks.append(student_names_marks[i])
        student_names_marks[i]=student_marks  # <------
    return student_names_marks
print(gen_stu())

使用
dict.setdefault

Ex:

def gen_stu():
    students_names=['venkatesh','kiran','ravi'] # assigning the names of students
    student_marks=[]
    student_names_marks={}
    for i in students_names:
        for m in range(1,3): # asking user for marks for respective students
            student_names_marks[i]=int(input(f'enter the marks of {i} for subject {m}: '))
            student_marks.append(student_names_marks[i])
        student_names_marks[i]=student_marks  # <------
    return student_names_marks
print(gen_stu())