检查字符串列表是否包含另一个字符串的所有字符-Python

时间:2019-04-15 00:45:41

标签: python substring

S = ['cat','tor','tutorial','item','aba','tori']  
T = "oti"


for item in S:
    for i in item:
        if i in T:
            print(item)

我想获取“ tori”和“ tutorial”,因为这两个单词包含oti。上面的代码将打印列表中的所有内容。不能使用find(),因为没有匹配项。

使用匹配将是一个不错的选择吗?我可以在这里使用一些提示。预先感谢。

1 个答案:

答案 0 :(得分:0)

使用sets进行成员资格测试。

>>> 
>>> T = 'oti'
>>> S = ['cat','tor','tutorial','item','aba','tori']
>>> t = set(T)
>>> t
{'o', 't', 'i'}
>>> for thing in S:
...     if t.issubset(thing):
            print(thing)


tutorial
tori
>>> 

如果字符重复,则无法使用。

>>> q = set('otti')
>>> for thing in S:
...     if q.issubset(thing):
            print(thing)


tutorial
tori
>>>

使用all

>>> 
>>> for thing in S:
...     if all(c in thing for c in T):
            print(thing)


tutorial
tori
>>>