проверьте, существует ли число в списке в python

Я пишу код python, где я буду добавлять числа в список, но я не хочу, чтобы числа в списке повторялись. Итак, как я могу проверить, есть ли число в списке, прежде чем я сделаю list.append() ?

4 Solutions collect form web for “проверьте, существует ли число в списке в python”

Вы могли бы сделать

 if item not in mylist: mylist.append(item) 

Но вы действительно должны использовать набор, например:

 myset = set() myset.add(item) 

EDIT: Если порядок важен, но ваш список очень большой, вы, вероятно, должны использовать как список, так и набор, например:

 mylist = [] myset = set() for item in ...: if item not in myset: mylist.append(item) myset.add(item) 

Таким образом, вы быстро просматриваете существование элемента, но вы сохраняете свой заказ. Если вы используете наивное решение, вы получите O (n) производительность для поиска, и это может быть плохо, если ваш список большой

Или, как отметил @larsman, вы можете использовать OrderedDict с тем же эффектом:

 from collections import OrderedDict mydict = OrderedDict() for item in ...: mydict[item] = True 

Если вы хотите иметь уникальные элементы в своем списке, то почему бы вам не использовать набор, если, конечно, заказ не имеет значения для вас:

 >>> s = set() >>> s.add(2) >>> s.add(4) >>> s.add(5) >>> s.add(2) >>> s 39: set([2, 4, 5]) 

Если заказ вызывает беспокойство, вы можете использовать: –

 >>> def addUnique(l, num): ... if num not in l: ... l.append(num) ... ... return l 

Вы также можете найти рецепт OrderedSet , о котором говорится в документации Python

Если вы хотите, чтобы ваши номера в порядке возрастания, вы можете добавить их в набор, а затем отсортировать набор в восходящем списке.

 s = set() if number1 not in s: s.add(number1) if number2 not in s: s.add(number2) ... s = sorted(s) #Now a list in ascending order 

Вместо этого вы могли бы использовать заданный объект. Просто add числа в набор. Они по своей сути не реплицируются.

  • Печатать список без скобок в одной строке
  • Преобразование одного упорядоченного списка в python в словарь, pythonically
  • Преобразование Python '\' в '\\'
  • Обновление списка
  • Сохраняет ли список python объект или ссылку на объект?
  • создание словарей для отображения порядка ранжирования
  • Как отсортировать список целых чисел в порядке убывания python
  • Python: длина самого длинного подсети?
  • Python - лучший язык программирования в мире.