Как создать список, который не будет добавлять и элемент уже в списке?

#python

#python

Вопрос:

 user=True

while user: 
    userName=input("Player Name:")
    names = []
    if userName in names: 
        print("Lets play again")
    else:
        print("Lets play")
        names.append(userName)
 

вот мой код, я в основном хочу составить список имен, но если это имя уже есть, я не хочу, чтобы оно добавлялось.

Комментарии:

1. пожалуйста, отформатируйте свой код с помощью обратных меток

2. Вам нужно поддерживать порядок элементов в списке?

Ответ №1:

Используйте набор вместо списка, так как наборы не допускают дублирования значений. Вы инициализируете пустой набор как set() , чтобы избежать путаницы с пустым dict , и вы инициализируете набор со значениями как {"name1", "name2"} .

 names = set()
names.add("batman")
names.add("robin")
 
 names = {"batman", "robin"}
 

Ответ №2:

То, что вам нужно, — это набор python, который действует как список, но допускает только уникальные элементы. Это также быстрее, если вы хотите проверить, есть ли элемент в наборе, но это выходит за рамки данного вопроса.

Вместо этого вы можете написать это:

 user=True

while user: 
    userName=input("Player Name:")
    names = set()
    if userName in names:
        print("Lets play again")
    else:
        print("Lets play")
        names.add(userName)