python - 如何测试字符串的一部分是否等于python列表中的项目?

标签 python string list

我试图弄清楚如何使用字符串的一部分来测试列表中的项目。例如,如果列表包含“potatoechips”并且我有一个名为“potatoe”的字符串,如何检查该字符串是否在列表中的项目中找到?

list = ['potatoechips','icecream','donuts']

if 'potatoe' in list:
    print true
else:
    false

最佳答案

要测试列表中任何字符串中是否存在子字符串,您可以使用 any :

>>> li = ['potatoechips','icecream','donuts']
>>> s="potatoe"
>>> any(s in e for e in li)
True
>>> s="not in li"
>>> any(s in e for e in li)
False

优点是 any 会在第一个 True 时中断,如果列表很长,效率会更高。

您还可以将列表连接在一起形成一个由分隔符分隔的字符串:

>>> s in '|'.join(li)
True

这里的优势是如果您有很多测试。例如,用于数百万个测试的 in 比构建数百万个推导式要快。

如果您想知道哪个字符串具有正数,您可以使用列表理解和列表中字符串的索引:

>>> li = ['potatoechips','icecream','donuts', 'potatoehash']
>>> s="potatoe"
>>> [(i,e) for i, e in enumerate(li) if s in e]
[(0, 'potatoechips'), (3, 'potatoehash')]

或者,如果您只想使用字符串作为替代,则可以使用filter:

>>> filter(lambda e: s in e, li)
['potatoechips', 'potatoehash']

关于python - 如何测试字符串的一部分是否等于python列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44055107/

相关文章:

c - 在 C 中对 argv 中的两个字符串进行异或

c# - 为什么将 c# 泛型 List 实现为仅追加数组?

python - 将字符串列表与字符串列表进行比较(python)

javascript - 互联网应用调用内网页面

Python pandas 实现条件类别

javascript - 如何计算javascript中字符串的行数

python-3.x - 如何仅更改二维列表的对角线元素?

python - Matplotlib 线框显示奇怪的接线

python - 从导航台数据存储聚合数据的最佳方式?

c++ - 如何反转单个单词?