我有一个字典形式的列表,如下所示:
[{0: [6]},
{0: [1, 4, 5, 6]},
{0: [3]},
{2: [1, 13, 15]},
{2: [8, 19]},
{2: [8]},
{2: [1, 23]},
{2: [8, 26]},
{2: [23]},
{2: [23]},
{2: [23, 34]},
{2: [39]},
{2: [23, 34, 1]},
{2: [1, 42]},
{2: [23, 34]},
{2: [24]},
{2: [15, 8]},
{3: [5, 6, 8, 9]},
{3: [0]},
{3: [1]},
{3: [5, 6, 13, 17, 18]},
{3: [12]},
{3: [2, 6, 9, 13, 15, 16]},
{3: [4, 5, 6, 17, 20, 21, 22]},
{3: [5, 12, 17, 20, 21, 26, 27]},
{3: [2, 8, 9, 22, 26, 28]},
{3: [4, 5, 6, 20, 21, 8, 1, 13, 32, 33]},
{3: [16, 13]},
{3: [9, 17, 20, 21, 27, 28, 32, 35, 36]},
{3: [6, 9, 16, 8, 37, 38]},
{3: [7, 9, 26, 27, 28, 29]},
{3: [9, 22, 1, 34]},
{3: [15, 25]},
{3: [29, 1]},
{3: [14, 20, 40]},
{3: [14, 13, 41]},
{3: [5, 32, 35, 36, 37, 38]},
{3: [6, 21, 42]}]像这样持续一段时间。第一个数字真的很重要。现在我想找到值'0','2‘和'3’,看看哪些值与此相关。
我最终想要的是查找不同的值并将所有连接到列表中的值保存起来。
为0:
0: [6,1, 4, 5, 6,3]我真不知道该怎么做。
发布于 2017-04-28 14:14:01
使用dict.setdefault()函数(对于所有值)的解决方案:
d = {}
for i in l:
k = list(i.keys())[0]
d.setdefault(k, [])
d[k] = d[k] + i[k]
print(d)产出:
{0: [6, 1, 4, 5, 6, 3], 2: [1, 13, 15, 8, 19, 8, 1, 23, 8, 26, 23, 23, 23, 34, 39, 23, 34, 1, 1, 42, 23, 34, 24, 15, 8], 3: [5, 6, 8, 9, 0, 1, 5, 6, 13, 17, 18, 12, 2, 6, 9, 13, 15, 16, 4, 5, 6, 17, 20, 21, 22, 5, 12, 17, 20, 21, 26, 27, 2, 8, 9, 22, 26, 28, 4, 5, 6, 20, 21, 8, 1, 13, 32, 33, 16, 13, 9, 17, 20, 21, 27, 28, 32, 35, 36, 6, 9, 16, 8, 37, 38, 7, 9, 26, 27, 28, 29, 9, 22, 1, 34, 15, 25, 29, 1, 14, 20, 40, 14, 13, 41, 5, 32, 35, 36, 37, 38, 6, 21, 42]}发布于 2017-04-28 14:13:12
您有一个相当奇怪的数据结构,但在编写数据结构时,可以使用以下代码对其进行修改:
list_of_dicts = [...]
output = dict()
for entry in list_of_dicts:
for key in entry:
if output.has_key(key):
output[key].append(entry[key])
else:
output[key] = entry[key]注意,这段代码并不是假定列表中的每个dict都只有一个键,因为在一般情况下,每个dict可能包含多个条目。此外,代码并不认为每个list元素都是唯一的,在这种情况下,一个集合可能更合适。
发布于 2017-04-28 14:10:44
你为什么不能这样把它们储存起来?
{
0 : [
[6],
[1,4,5,6]
...],
1 : ...
}https://stackoverflow.com/questions/43682141
复制相似问题