Я хочу сравнить строку с именем itemToReplace с строкой в массиве, но игнорирую регистр (если это заглавная буква или строчная буква).
Вот код:
itemToReplace = input("Choose an item to replace: ")
if itemToReplace in self._inventory:
# do something...
И когда я это сделаю, если пользователь введет что-то вроде "sWord" вместо "Sword", это не сработает. Так кто-нибудь знает, как это сделать?
Спасибо.
Вы хотите игнорировать регистр и другие заглавные буквы в строке? Если да, то используйте метод .lower () для нужной строки.






Измените регистр всего ввода, выполнив.
itemToReplace = input("Choose an item to replace: ").upper() #Uppercase
или же
itemToReplace = input("Choose an item to replace: ").lower() #Lowercase
Это должно помочь.
import string
print 'sWord'.lower() in map(string.lower, ['Sword'])
Выход:
True
map для преобразования всех строковых элементов в списке в более низкий и используйте in.ему нужно изменить регистр ввода одной строки, а не списка .. Идеально для списка, но слишком много для одной строки .. конечно, если _inventory полон строк со смешанным регистром, тогда это будет идеально!
просто добавьте
.upper()или.lower()в конец ввода, и это изменит регистр, чтобы вы могли справиться с этим проще