通过迭代python列表,我想创建一个列表字典,其中每个字典的值也是一个列表。在
结构将是:[{key1: [val1, val2]}, {key2: [val3, val4]}, {key3: [val5, val6]}, ...]
我从一系列整数开始:
^{pr2}$
对于列表中的每个元素,它应该成为字典键。然后,我将两个项目附加到字典的值(这是一个列表)。(假设这两个项目总是“狗”和“猫”)
最终结果如下:[{3423:['dog', 'cat']}, {77813:['dog', 'cat']}, {12:['dog', 'cat']},
{153:['dog', 'cat']}, {1899:['dog', 'cat']}]
我这样做有很多问题:for i in my_list:
d = {} ## create a dictionary 'd'
d[i] = [].append('dog') ## or `d[i] = ['dog'].append('cat')`
my_list.append(d) ## here is a bug
my_list.remove(i) ## remove the item from the list我不喜欢这样,我必须给一个空字典命名,并且每个字典都命名相同的东西(这里,d)。后来,我想按着这些字典的键来查阅每一本字典——我不在乎它们的名字。
我不知道如何明智地将多个条目追加到字典值中,而实际上它应该是一个列表。如果我想增加几个项目呢?
错误是将字典附加到原始列表,然后删除该项。当然,这可以通过一个新的列表来解决:new_list = []
for i in my_list:
d = {}
d[i] = [].append('dog')
new_list.append(d)
my_list.remove(i)
但这感觉很笨拙。在