在ord中检查列表中的多个项目

2024-04-25 21:52:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查列表中的元素是否包含字符串,但必须按顺序排列。你知道吗

示例:

x = ['a', 'b', 't', 'd', 'e']

z = 'bt'

我想看看z是否在x中的顺序。你知道吗

我知道我能做到:

if all(item in x for items in z):
    # do something

但这并不能检查顺序(bt中的t不必在b后面,它可以在列表的任何地方)

我知道你可以做一个嵌套循环,或者把列表转换成一个字符串,然后再使用它,但这并不是很有效。。。你知道吗

有什么帮助吗?你知道吗


Tags: 字符串in元素示例列表forif顺序
1条回答
网友
1楼 · 发布于 2024-04-25 21:52:36

如果列表中包含字符,则可以缩小列表。使用此方法:

def control(x, z):
    for char in z:
        if char not in x:
            return False
        else:
            x = x[x.index(char) + 1:]
    return True

让我们试试:

x = ['a', 'b', 't', 'd', 'e']
z1 = 'ba'
z2 = 'bt'
z3 = 'bd'

print(control(x, z1))
print(control(x, z2))
print(control(x, z3))

输出:

False
True
True

相关问题 更多 >