我有两个长度相同的列表:
alist = ['XX', 'HH', 'GG', 'XX', 'II', 'PP', 'LL', 'TT', 'KK', 'XX']
blist = [2, 3, 5, 5, 9, 8, 9, 4, 7, 2]
我想知道 alist 中的哪些值在 blist 中具有相同的数字。我希望结果如下所示:
2 = XX; 3 = 高;5 = GG,XX;9 = II,LL;8 = 聚丙烯;4 = TT;7 = KK
我是这样解决的:
from collections import defaultdict
adict = {}
a = zip(blist, alist)
for key, value in a:
adict.setdefault(k, []).append(v)
这给出了这个结果: adict:
{2: ['XX', 'XX'], 3: ['HH'], 4: ['TT'], 5: ['GG', 'XX'], 7: ['KK'], 8: ['PP'], 9: ['II', 'LL']}
但我不想要两次相同的值,例如 2:['XX','XX'] - 我想改为 2:['XX']。
I tried this using 'set' before the list of values:
a = zip(blist, alist)
for key, value in a:
a.setdefault(k, set[]).append(v)
但它抱怨......有什么想法吗?