【发布时间】:2019-07-28 09:15:31
【问题描述】:
我查看了几个类似的线程,但无法获得可行的解决方案。我正在循环 (2) 字典,试图从一个基于另一个键的值创建一个列表。我已经完成了 for 循环,但如果可能的话,我希望使用单行。我的代码带有 for 循环
for k, v in dict1.items():
for value in dict2[k]:
temp.append(value)
在通过临时列表的第一个循环将是并且来自上面的代码:
[16,18,20,22,24,26]
然后我使用 min 来获取列表的最小值。现在我想将 for 循环压缩为一个衬里。我已经整理好了
temp=[dict2.values() for k in dict1.keys() if k in dict2.keys()]
执行时,temp 不是 dict1 中存在的 k 的单个列表,而是得到所有 dict2 中所有值的列表列表。
[[16,18,20,22,24,26], [12,16,18,20,22,24], [16,18,22,26,30,32]]
似乎忽略了 if 语句。我知道我的 dict1 在这种情况下只有 1 个键,并且我知道 dict2 中存在 1 个键。我的一个班轮错了吗?
字典的输入值:
dict1={'table1':[16,18,20,22,24,26]}
dict2={'table1':[16,18,20,22,24,26],'table2': [12,16,18,20,22,24], 'table3': [16,18,22,26,30,32]}
【问题讨论】:
标签: python list dictionary for-loop key