есть ли способ сделать так, чтобы одна переменная имела несколько значений

#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» (или что-то еще) или нет.

Надеюсь, этот ответ помог вам решить вашу проблему и понять ее.