#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»], поскольку все элементы внутри списка являются строками, а не другим списком.