Невозможно сравнить строки Python

#python #string #substring

#питон #строка #подстрока

Вопрос:

У меня есть некоторые проблемы с сравнением строк/подстрок в Python. Вот мой код:

 spelformer = "V86-1 V75-1 GS75-1".split()l_count = 0for line in input: print(line.split()) print(spelformer) l_count  = 1 if line in spelformer: print("ja") else: print("nej") break 

Это и есть результат:

 runfile('G:/Min enhet/Python/Travscript.py', wdir='G:/Min enhet/Python')['V86-1']['V86-1', 'V75-1', 'GS75-1']nej 

Что я вижу, строка равна V86-1, а spelformer равен V86-1, и поэтому она должна совпадать. Но результат все равно «nej» = «нет».

Кто-нибудь знает, почему?

Извините за вопросы новичков..

Комментарии:

1. почему break ? Он всегда завершает цикл после первой итерации…

2. Также… input дает вам строку (если вы не достаточно смелы, чтобы переопределить это встроенное), цикл повторяется по отдельным символам этой строки; также input сам по себе не должен быть повторяемым, он возвращает повторяемый, если используется как input()

3. Решил эту проблему, использовал .strip(). Какие-то скрытые пробелы или что-то в моем входном файле. «Перерыв» был просто для завершения цикла после первой строки, потому что файл большой, и я проверял свои идеи. Не нужно проверять все строки.

Ответ №1:

Может быть, вы попробуете сделать это таким образом:

 spelformer = "V86-1 V75-1 GS75-1".split()for s in input().split(): if s in spelformer: print('yes') else: print('no') 

Комментарии:

1. Решил это с помощью .strip(). В любом случае, спасибо.

Ответ №2:

Строка spelformer, которую вы передаете, заключена в двойные кавычки ( «» ), но строка, которую вы передаете при вводе, будет взята в одинарные кавычки (‘ ‘). Таким образом, при разделении входные данные будут разделяться символ за символом. Кроме того, () для ввода отсутствует.

Ответ №3:

если строка[0] в spelformer:

Это должно сработать, так как теперь будут сравниваться строковые значения. Ранее список [‘V86-1’] был сопоставлен с [‘V86-1’, ‘V75-1’, ‘GS75-1’]. Вместо этого вам нужна строка «V86-1», которую нужно сравнить с [«V86-1», «V75-1», «GS75-1»], поскольку все элементы внутри списка являются строками, а не другим списком.