一個很好的辦法做到這一點在純Python是迭代結果列表中的所有可能的值。創建一個將每個值映射到與其關聯的鍵的字典。
d ={'one':[1,2,3], 'two':[3,4,5], 'three':[5,6,7]}
results = dict()
for key in d.keys():
for value in d[key]:
if value in results:
results[value].append(key)
else:
results[value] = [key]
現在,當你調用的結果,你會得到一本字典,看起來像
{1: ['one'],
2: ['one'],
3: ['two', 'one'],
4: ['two'],
5: ['three', 'two'],
6: ['three'],
7: ['three']}
然後,我們可以經歷的結果,只打印出與多個相關聯的密鑰的人。
for number, strings in results.items():
if len(strings) > 1:
print number, strings
給你:
3 ['two', 'one']
5 ['three', 'two']
這樣做要快,因爲它是相對於組合名單從原來的字典中的總長度線性的這種方式。
哦,你改變問題的陳述......像幾乎完全 –