我有一个56种不同鱼种的列表(或者如果我选择,可以是集合或元组)。我想通过CSV文件“扫描”来识别任何鱼类的发生。Python - 识别字符串中的值
我想:
with open(file_path) as f:
for line in f:
if (stocks in line):
fish, remainder = line.split('\t')
print("fish:", fish)
print("remainder:", remainder)
但失败的原因为:
TypeError: 'in <string>' requires string as left operand, not tuple
所以我要寻找这个办法成功。
可能出现的列表:
stocks = (
'GB COD EAST',
'GBE COD',
'GB COD WEST',
'GBW COD',
'GOM COD',
'GB HADDOCK EAST',
'GBE HADD',
'GB HADDOCK WEST',
'GBW HADD',
'GOM HADDOCK',
'GOM HADD',
'GOM HAD',
'GOM HADOCK',
'PLAICE',
'DABS',
'POLLOCK',
'POLL',
'REDFISH',
'REDS',
'RED',
'WHITE HAKE' ,
'WHITEHAKE',
'WHAKE',
'WHAK',
'GB WINTER FLOUNDER',
'GB BB',
'GB WINTER',
'GB BLACK BACKS',
'GB BLACKBACKS',
'GOM WINTER FLOUNDER',
'GOM BLACKBACKS',
'GOM BB',
'GOM WINTER',
'SNE WINTER FLOUNDER',
'SNE WINTER',
'SNE/MA WINTER FLOUNDER',
'SNE BLACKBACK',
'SNE BLACKBACKS',
'SNE BB',
'WITCH FLOUNDER',
'WITCH',
'WHICH',
'WHITCH',
'GREYSOLE',
'GREY SOLE',
'CC/GOM YELLOWTAIL FLOUNDER',
'GOM YELLOWTAIL',
'GOM YELLOW TAIL',
'GOM YT',
'GB YELLOWTAIL FLOUNDER',
'GB YELLOWTAIL',
'GB YT',
'SNE/MA YELLOWTAIL FLOUNDER',
'SNE YT',
'SNE YELLOWTAIL',
'SNE YELLOW TAIL',
'SCALLOP IFQ'
)
'stocks'是一个元组。您正在查找字符串中的元组对象。相反,你需要一个单独的'for'循环遍历整个元组中的每个字符串。 – roganjosh
你是否考虑过把股票变成一套 - 也就是'sstocks = set(股票)' – user1245262