我有一本包含列表的词典。例如
{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个或更多元素的列表的dictionary元素(即本例中的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。你知道吗
我认为^{} 是最明显的方法:
根据您的实际数据,您可以将上面函数中的
tuple(subseq[:3])
替换为例如(subseq[1], subseq[4], subseq[5])
,或者将附加的subseq[3]
替换为subseq
。。。这取决于你对数据的处理。你知道吗但是,键必须是元组而不是列表,因为键必须是不可变的。你知道吗
示例:
你可以像处理其他字典一样处理这个问题
相关问题 更多 >
编程相关推荐