将列表值添加到列表字典

时间:2021-05-04 19:14:07

标签: python dictionary

我有一个列表字典:

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

2 个答案:

答案 0 :(得分:2)

您可以使用 append 作为键 NameAge 中的值,因为它们都是列表,并且列表是可变的

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)}