创建具有可变编号的多个列表的字典

时间:2019-01-31 09:43:51

标签: python

我的列表是data1data2,我可以成功地将两个列表放在一个字典中。当目录中的文件列表数量未知时,如何为所有这些文件执行此代码?

例如,我有(data1,data2,data3,data4,...)

final_dict = {key: value + data2[key]  for key, value in data1.items()}

2 个答案:

答案 0 :(得分:0)

猜测data1,data2等都是字典,并且您具有这些字典的列表。这是一种创建final_dict的方法,其中包含列表中所有dict中的每个键/值对:

# Unknown number of dicts
data1 = {'a': 1, 'b': 2}
data2 = {'c': 3, 'd': 4}

# List of the dicts
dict_list = [data1, data2]

final_dict = {}
for data_dict in dict_list:
    for key, value in data_dict.items():
        final_dict[key] = value

print(final_dict )

这是你的追求吗?

试图了解所需的输出

我仍然不明白您希望输出看起来如何。让我们尝试一个例子。如果数据如下所示:

data1 = {'encodings':['UTF-8', 'UTF-16', 'UTF-32'],'names':['Unicode']}
data2 = {'encodings':['ISO 8859-1', 'EBCDIC', 'GB18030', 'ASCII'],'names':['8-bit']}
data3 = {'encodings':['Windows-1250', 'KOI8-R', 'GBK'],'names':['other']}
data_list = [data1, data2, data3]

您希望final_dict看起来像那些输入数据吗?

答案 1 :(得分:0)

假设你有你的数据字典已经被存储在一个名为列表dict_list

final_dict = {key: value for data_dict in dict_list for key, value in data_dict.items()}

会做同样为figbeam的答案。尽管不那么冗长,并且可能更难阅读,但它更接近于您建议的方法:)也许也有帮助。