我想通过列表扩展带有for循环的现有字典

时间:2016-07-08 04:55:21

标签: python

我已经简化了我的代码来说明我正在尝试做什么。我有一个列表的东西,在该列表中也是我的字典键。我正在尝试做一个for循环,它接受列表中的每个元素,在该元素上运行一个函数,然后我想用函数返回的函数扩展我的字典。我在这里做错了什么?

student_list = ['Whitney', 'Jason']
first_dict = {'Whitney':'Math', "Jason":"Biology"}

def schedule(student):
    B = 'Science'
    C = 'Social Studies'
    D = 'Gym'
    E = 'Lunch'

for student in student_list:
    schedule(student)
    first_dict[student].append([B, C, D, E])

我的错误是:'str' object has no attribute 'append'

虽然我确定我做错了其他事。

2 个答案:

答案 0 :(得分:1)

您正在尝试将值附加到字符串,这是您无法做到的。将first_dict中的值从字符串更改为列表(例如'Math'['Math']),您的问题就会得到解决。

答案 1 :(得分:0)

尝试这样的事情。

student_list = ['Whitney', 'Jason']
first_dict = {'Whitney':['Math'], "Jason":["Biology"]}

def schedule(student):
    B = 'Science'
    C = 'Social Studies'
    D = 'Gym'
    E = 'Lunch'
    first_dict[student].extend([B, C, D, E])

for student in student_list:
    schedule(student)