gpt4 book ai didi

python - 在列表列表中查找不完全匹配

转载 作者:行者123 更新时间:2023-12-04 17:36:33 24 4
gpt4 key购买 nike

假设我有一个列表列表,例如

    new_list=[[1,2,3],
[9,1,6],
[7,3,4]]

我想做这样的事

    n=new_list.index([7,:,4])

我想

n==2

因为确实如此,

new_list[2]==[7,3,4]

我希望这个例子能说明我的观点,我想在不指定要查找的完整列表的情况下查找列表列表是否包含某个列表。

最佳答案

可以定义一个部分“匹配”函数,其中 None 匹配所有,然后使用 next 找到第一个部分匹配(类似于 index 确实如此,只找到第一个匹配项):

pMatch = lambda l1, l2: all([x[0] == x[1] or x[0] == None for x in zip(l1, l2)]) 

# examples of partial matches
pMatch([1, 2, None], [1, 2, 3])
# True
pMatch([1, 2, 4], [1, 2, 3])
# False

new_list = [[1, 2, 3], [9, 1, 6], [7, 3, 4]]
l = [7, None, 4]

next(i for i in range(len(new_list)) if pMatch(l, new_list[i]))
# 2

一行:

next(i for i in range(len(new_list)) if all([x[0]==x[1] or x[0]==None for x in zip(l, new_list[i])])) 
# 2

(假设所有列表的长度相同)

关于python - 在列表列表中查找不完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com