我有一个列表字典:
my_dict = {'Name': ['John', 'Peter', 'Greg'], 'Age': [26, 39, 48]}
我想从一个平面列表向字典的每个键添加新值:
new_row = ['Bob', 23]
所以最终的字典看起来像这样:
{'Name': ['John', 'Peter', 'Greg', 'Bob'], 'Age': [26, 39, 48, 23]}
最有效和最聪明的方法是什么,最好不依赖导入的模块?
这行得通,但有更好的方法吗?
i = 0
for k in my_dict.keys():
my_dict[k].append(new_row[i])
i += 1
答案 0 :(得分:2)
您可以使用 append
作为键 Name
和 Age
中的值,因为它们都是列表,并且列表是可变的
my_dict['Name'].append(new_row[0])
my_dict['Age'].append(new_row[1])
my_dict
Out[27]: {'Name': ['John', 'Peter', 'Greg', 'Bob'], 'Age': [26, 39, 48, 23]}
答案 1 :(得分:0)
您可以使用列表 zip
字典的值。
for l, x in zip(my_dict.values(), new_row):
l.append(x)
您还可以使用字典理解来创建新的字典,而无需修改原始字典。
new_dict = {k: v + [x] for (k,v), x in zip(my_dict.items(), new_row)}