#python #list
Вопрос:
есть ли способ, которым я делаю x = «y» = «Y», поэтому, когда я набираю x == «y» или x == «Y», оба показывают True. я пытался :
x = ["y", "Y"]
x == "y"
x == "Y"
но и то и другое все равно говорит Неправду
Комментарии:
1. Вы могли бы создать
x
экземпляр класса, который переопределяет__eq__
счетчик, который переключается между тем, что он должен возвращать, но вы были бы безумны, если бы сделали это2. Это может помочь объяснить, чего вы пытаетесь достичь. Похоже, вы просто пытаетесь сравнить строку без учета регистра, так
x.lower() == "y"
что, возможно, вам нужно что-то вроде.
Ответ №1:
IIUC, вам нужно .any()
проверить каждый элемент с помощью » y » или «Y», как показано ниже:
>>> [i == 'y' for i in x]
[True, False]
>>> any(i == 'y' for i in x)
True
>>> [i == 'Y' for i in x]
[False, True]
>>> any(i == 'Y' for i in x)
True
Комментарии:
1. Да! Извините, что опоздал!
Ответ №2:
Это сработало бы. Пожалуйста, проверьте, так ли это было:
x = ("y", "Y")
for i in enumerate(x):
print(i[1] == "y")
Что делает этот код, так это создает кортеж из обоих значений, а затем запускает цикл for, используя класс перечисления, который сообщает текущий индекс, а также значение текущего индекса и сохраняет его в переменной (переменная здесь «i»). Пример — i = (0, «y») это означает, что это первый цикл (0), а значение равно «y». затем он проверяет, является ли i[1] («y» в соответствии с приведенным выше примером) = = «y» (или что-то еще) или нет.
Надеюсь, этот ответ помог вам решить вашу проблему и понять ее.