【发布时间】:2017-02-18 01:36:25
【问题描述】:
我有一本包含列表的字典。例如,
{1: [[sender11, receiver11, text11, address11]],
2: [[sender21, receiver21, text21, address21], [sender22, receiver22, text22, address22]],
3: [[sender31, receiver31, text31, address31], [sender32, receiver32, text32, address32], [sender33, receiver33, text33, address33]]
4: [[sender41, receiver41, text41, address41], [sender42, receiver42, text42, address42], [sender43, receiver43, text43, address43], [sender44, receiver44, text44, address44]]}
我想要做的是,对于包含具有 2 个或更多元素的列表的字典元素(即本例中的 dict[2]、dict[3] 和 dict[4]),我对 sender, receiver, text 进行比较每个列表值。对于每组具有相同sender, receiver, text 的列表值,我会做一些事情。
例如,在dict[3] 中,如果sender31, receiver31, text31 与sender32, receiver32, text32 和sender33, receiver33, text33 的值相同,那么我将对所有3 个列表值进行处理。
在dict[4] 中说,如果sender41, receiver41, text41 与sender42, receiver42, text42 的值相同,而sender43, receiver43, text43 与sender44, receiver44, text44 的值相同,但与sender41, receiver41, text41 不同,那么我将处理这两个单独分组。
我编写了一个 Python 脚本,它几乎可以蛮力比较 sender21, receiver21, text21 和 sender22, receiver22, text22 的值,即
if sender21 == sender22 and receiver21 == receiver22 and text21 == text22:
# Do something
这效率不高,因为它只适用于 2 个列表值,但我不知道我应该如何实现它以便它适用于任何数量大于 1 的列表值。
【问题讨论】:
标签: python python-2.7 list dictionary comparison