проверьте, существует ли число в списке в 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
  • Есть ли лучший способ конвертировать список в словарь в Python с ключами, но нет значений?
  • Как я могу получить доступ к каждому элементу пары в списке пар?
  • Чрезвычайно большой булевский список в Python
  • разбивать список на лямбда-функцию в python
  • Как сравнить несколько списков кортежей в python?
  • преобразовать строку 2d list обратно в 2d-список в python
  • Вызывать функцию int () для каждого элемента списка?
  • Как добавить несколько значений в список в Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.