【发布时间】:2021-02-04 13:41:58
【问题描述】:
我有一个这样的元组列表:
l=[(5, 8),(5, 9),(5, 22),(5, 6),(1, 5),(4, 5),(3, 5),(2, 5),(8, 22),(9, 22)]
我想为每个值生成一个字典;例如,我将出现的值设置为 8 我将拥有 [5,22]。
这应该是最终结果:
{1: [5],
2: [5],
3: [5],
4: [5],
5: [8, 9, 22, 6, 1, 4, 3, 2],
6: [5],
8: [5, 22],
9: [5, 22],
22: [5, 8, 9]}
我正在这样做并且它工作正常,但我觉得它没有优化并且“硬编码”是否有更好的版本
dic={}
for n in set([item for sublist in l for item in sublist]):
ll=[]
for item in [sublist for sublist in l]:
if n in item :
ll.append(item[list({0,1}-{item.index(n)})[0]])
dic[n]=ll
【问题讨论】:
-
可以试试 codereview.stackexchange.com 吗?
-
谢谢你,是的,下次我会在那里问,我不知道,对不起
标签: python list dictionary set