Python 类型错误:';在<;字符串>';需要字符串作为左操作数,而不是列表错误
代码Python 类型错误:';在<;字符串>';需要字符串作为左操作数,而不是列表错误,python,string,Python,String,代码 text = ["300000", "300001", "500000", "500001"] cnt = 0 for line in f: if text in line: print(line.strip()) cnt += 1 if cnt: print(cnt, "count") else: print(text, "No data.") 错误: Traceback (most recent call last): Fi
text = ["300000", "300001", "500000", "500001"]
cnt = 0
for line in f:
if text in line:
print(line.strip())
cnt += 1
if cnt:
print(cnt, "count")
else:
print(text, "No data.")
错误:
Traceback (most recent call last):
File "C:/Users/users/PycharmProjects/Mining/Test Folder/Test2.py", line 10, in <module>
if text in line:
TypeError: 'in <string>' requires string as left operand, not list
回溯(最近一次呼叫最后一次):
文件“C:/Users/Users/PycharmProjects/Mining/Test Folder/Test2.py”,第10行,在
如果行中有文本:
TypeError:“in”需要字符串作为左操作数,而不是列表
为什么会发生此错误?您需要了解“in”在python中是如何工作的
示例:
>[“pqr”、“xyz”、“abc”]中的“abc”
True
在这里,我正在测试字符串“abc”是否存在于“in”右侧提到的列表中,即[“pqr”、“xyz”、“abc”] 但您正在检查另一个列表(代码中的行)中是否存在列表(代码中的文本)。
因此,正如错误所说,“in要求字符串作为左操作数”,但您提供了一个列表。in关键字用于检查某个值是否在集合中 如果要知道列表中是否有
行
,请切换操作数:
text = ["300000", "300001", "500000", "500001"]
cnt = 0
for line in f:
if line in text:
print(line.strip())
如果您想知道列表文本中的任何字符串是否在行的子字符串内,请执行以下操作:
text = ["300000", "300001", "500000", "500001"]
cnt = 0
for line in f:
if any([i in line for i in text]):
print(line.strip())
这里的f
是什么?因为line
是一个字符串对象,text
是一个列表对象,所以您要检查字符串是否包含list。f没有任何意义……您想对上述代码做什么?您试图实现的逻辑是什么?文本文件中有大量数据。加载数据时,如果我写的四个数据中的任何一个匹配,它会显示所有匹配的句子。这不是答案。请使用注释来澄清问题。Hello@PrashantKumar,问题是为什么会发生此错误?
我回答了这个问题,解释了为什么会发生此错误。你能告诉我为什么这不是很好的回答吗。如果您能将问题标记为已解决,将不胜感激@이현규