gpt4 book ai didi

python - 比较一个列表中的所有项目以相同顺序出现在另一个列表中

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:54 26 4
gpt4 key购买 nike

在下面的代码中,如何只返回那些值为 True 的值,其中检查列表中的元素顺序在路由列表中遵循?

例如:checklist(["BOMH","DELH","BRGH"]) 应该返回 True ["BOMH","CCUH","DELH","BRGH"] 但不是 ["BOMH","BRGH","CCUH","DELH"]

def checklhcost2(checklist):
thcdataselect["shortlist"] = thcdataselect.apply(lambda x:\
True if all((i in x["routelist"] for i in checklist)) else False)
return thcdataselect.filter_by(1,"shortlist")

最佳答案

使用映射确定每个值的权重,过滤掉不匹配的那些,并检查其排序是否正确:

master = ["BOMH","DELH","BRGH"]
ordering = {item:idx for idx,item in enumerate(master)}
check1 = ["BOMH","CCUH","DELH","BRGH"]
check2 = ["BOMH","BRGH","CCUH","DELH"]

def check(o, c):
return all(o[i]==r for i,r in zip((i for i in c if i in o), range(len(o))))

结果:

>>> check(ordering, check1)
True
>>> check(ordering, check2)
False

关于python - 比较一个列表中的所有项目以相同顺序出现在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591869/

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