我有两个Python列表:
checkNameArr = [['551002', 'Derek Jones'],
['940874', 'Hugh Lunny'],
['104741', 'Richard Plaith'],
['310125', 'Aideen Toner'],
['305795', 'Vikki Trench'],
['218714', 'Paul Cutland'],
['401741', 'Russell Smith'],
['223996', 'Chloe Green'],
['845216', 'Simon Fallon'],
['402258', 'Chris Worth']]
queryNameArr = [['551002', 'Derek Jones'],
['940874', 'Hugh Lunny'],
['823085', 'Brian Deans'],
['310125', 'Aideen Toner'],
['571454', 'Pam Scales'],
['967825', 'Una Lingus'],
['401741', 'Russell Smith'],
['682301', 'Hannah Jacobs'],
['914774', 'Elaine Glass'],
['402258', 'Chris Worth']]
我想比较每个列表中的数值。我知道我需要遍历一个列表,将其与下一个列表的第一个值进行比较,如果找到匹配项,则将其存储在找到的列表中。如果找不到,则将该值存储在未找到列表中。我试图用尽可能少的代码来做这件事,但这件事的逻辑让我很困惑。你知道吗
什么是好的清洁解决方案?你知道吗
我将通过将每个内部元素转换为tuple,然后遍历另一个列表并检查其元素(转换为tuple)是否存在于集合中,如果存在,则将其添加到found list,否则将其添加到notfound list,从而将要检查的列表转换为
set
。你知道吗示例-
演示-
如果您只想使用一个元素或内部列表的一个子集进行比较,而不是将内部列表的完整元组存储在集合中,那么我们可以使用
operator.itemgetter()
只获取要单独比较和存储的元素。你知道吗然后单独用这个比较,代码-
示例/演示-
结果:
基于集合的替代方案:
从
list
到tuple
的转换以及从list
到tuple
的转换有些烦人。。。(但需要,因为集合不能处理列表)。你知道吗相关问题 更多 >
编程相关推荐