【发布时间】:2019-09-09 21:07:40
【问题描述】:
我有一个不同类型的值列表,我想检查给定列表中是否存在子字符串,当找到时,我想取回它的索引。
我尝试使用 any() 进行此操作,但提示 in <string>' requires string as left operand, not int 时出现错误。我假设,列表中的所有值都必须是字符串才能使用any()。
我还能用什么其他方法来实现这一点?
这是我当前的代码:
list_val = [1,18.0, 'printer', 'EXTRACT (123)']
string_val = 'EXTRACT'
any(x in string_val for x in list_val)
我什至尝试将所有非字符串转换为字符串,然后想使用上述any() 逻辑,但这给了我其他错误。我尝试了以下方法:
for i, val in enumerate(list_val):
if not isinstance(val, str):
list_val[i] = str(val)
这会引发错误:isinstance() arg 2 must be a type or tuple of types
【问题讨论】:
-
你会使用
string_val in x,开始。 -
根据您的错误消息,我认为您覆盖了
str类型。尝试print(str)进行检查。如果输出不是<type 'str'>,那就有问题了。 -
您的第二个异常表明您已通过将其他内容绑定到名称
str来掩盖内置类型。使用del str摆脱它。
标签: python