在for循环中获取字符串的模糊真值,但不确定原因

2024-05-17 13:42:26 发布

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

我有一个名为my_strings的字符串列表。我想拉出该列表中包含search_string的所有字符串

我的尝试如下:

new_strings = [my_str for my_str in my_strings if search_string in my_str]

我得到以下错误

^{pr2}$

但我不明白为什么,因为我只是在比较两条弦。如果我手动从终端中取出一个随机元素,然后自己进行比较,效果很好。


Tags: 字符串in终端列表newforsearchstring
2条回答

作为错误消息表示:-在

 ValueError: The truth value of an array with more than one element is ambiguous. 
Use a.any() or a.all()

这意味着您的代码包含numpy数组,那么您需要如下所示进行比较:-

^{pr2}$

有关详细信息,请参阅this

您在某处有一个numpy数组,而不是标准的Python类型;请参见ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()中的示例,并解释了numpy数组引发此异常的原因。在

给定一个包含标准字符串值的基本Python列表对象,并且search_string也是一个字符串,那么您的代码就可以工作

>>> search_string = 'foo'
>>> my_strings = ["Let's foo the bar", 'There is spam in my egg salad', 'You are barred from entering the foodchain!']
>>> [my_str for my_str in my_strings if search_string in my_str]
["Let's foo the bar", 'You are barred from entering the foodchain!']

相关问题 更多 >