Ich habe eine Liste (oder ein Set oder Tupel, wenn ich wähle) von 56 verschiedenen Fischarten. Ich würde gerne durch eine CSV-Datei "scannen", um jedes Vorkommen einer der Fischarten zu erkennen.Python - erkenne einen Wert in einer Zeichenkette
Ich habe versucht:
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)
aber das schlägt fehl, weil:
TypeError: 'in <string>' requires string as left operand, not tuple
Also für diese für einen Weg zum Erfolg Ich bin auf der Suche.
Die Liste der möglichen Vorkommen:
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' ist ein Tupel. Sie suchen nach einem Tupel-Objekt in einer Zeichenfolge. Stattdessen benötigen Sie eine separate For-Schleife, um jede Zeichenfolge _inside_ des gesamten Tupels zu durchlaufen. – roganjosh
Haben Sie überlegt, Bestände in eine Menge zu ändern - dh 'sstocks = set (stocks)' – user1245262