gpt4 book ai didi

python - 检查两个项目是否在列表中但不在固定顺序中?

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

我有一个 list

listOfStations = ['FSTL40503', 'LHSL40503', 'WEHL40503', 'BKGL40503', 'DDKL40503', 'RNML40503', 'PFLL40503', 'GRYL40503']

我想检查 FSTL40503 排在第一位,然后 PFLL40503 排在第二位。我目前可以找到两者是否都存在,但它不符合我想要的顺序。

toBeChecked=['PFLL40503','FSTL40503']
if all(item in listOfStations for item in toBeChecked):
print "Both stations found in order, in list"

这当前打印它不应该做的,因为它不是正确的路线。

我还尝试将列表中的两个条目加入一个字符串并进行检查,但我认为我混淆了需要做什么:

z= ''.join(toBeChecked)
print z
for char in z:
if char not in listOfStations:
print listOfStations
continue
else:
listOfStations = listOfStations[listOfStations.index(char) + 1:]
confirmedTrainList.append(trainList[i])

最佳答案

您可以在 listOfStations 上获得一个迭代器,它将在搜索时使用列表,因此它永远不会考虑同一个元素两次。

def contains_in_order(container, items):
it = iter(container)
return all(item in it for item in items)

should_not_work = ['PFLL40503', 'FSTL40503']
should_work = ['FSTL40503', 'PFLL40503']

listOfStations = ['FSTL40503', 'LHSL40503', 'WEHL40503', 'BKGL40503', 'DDKL40503', 'RNML40503', 'PFLL40503', 'GRYL40503']

print(contains_in_order(listOfStations, should_not_work))
# False
print(contains_in_order(listOfStations, should_work))
# True

关于python - 检查两个项目是否在列表中但不在固定顺序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49861201/

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