Идентичные объекты в списке - PullRequest
1 голос
/ 25 марта 2020

возможно ли идентифицировать объекты как разные переменные, скажем, object1 = (1,2,3) и object2 = (1,2,3).

list = []

Если я теперь помещу объект 1 в список вместе с объектом 2, список становится:

list.append(object1)
list.append(object1)
print(list)
list = [(1,2,3),(1,2,3)]

Как я могу позволить python решить, является ли первый элемент в списке object1? Это то, что я должен сделать для своего школьного проекта.

Ответы [ 3 ]

1 голос
/ 25 марта 2020

Компьютер делает только то, что вы говорите. Так что, если вы добавите что-то дважды, он будет слушать. Если вы хотите, чтобы это делалось в условиях, вам нужно использовать оператор if и сравнить значения в списке со значением, которое вы пытаетесь добавить. Чтобы сделать это проще, я бы поместил это в функцию, чтобы вы могли легко вызывать эту логику c

В вашем случае, я предполагаю, что вы хотите добавить объект, только если он не существует:

list = []
def addToList(elem):
    global list # allows the function to modify this variable that would be normally out of scope
    if elem not in list:
        list.append(elem)

object1 = [1,2,3]
addToList(object1)
addToList(object1)
print(list)
0 голосов
/ 06 апреля 2020

Я нашел это. Вы можете сделать это с помощью функции is.

Block1 is Block2
list[0] is list[1]

ответ: False

0 голосов
/ 25 марта 2020

вы можете привести к возвращению в список:

my_list = [(1,2,3),(1,2,3)]
print(list(set(my_list)))
# [(1, 2, 3)]

или вы можете сначала проверить, есть ли ваш объект в списке:

if object1 not in my_list:
    my_list.append(object1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...