Это может сработать. Используя синтаксис if x not in
, мы можем легко проверить, есть ли число в существующем списке. Если его нет в списке, мы добавляем его. Если он есть в списке, мы добавляем его в оставшийся список.
mylist = []
leftover = []
x = 2
def add(x):
if x not in mylist:
mylist.append(x)
print('True')
print(mylist)
else:
leftover.append(x)
print('False')
print(leftover)
add(x)
Установить против списка:
Существуют некоторые ограничения производительности, если вы используете массивные последовательности чисел. В этом случае сохранение чисел в Python set()
значительно ускорит любой поиск, чтобы увидеть, существует ли уже номер. Это связано с тем, что Python хранит числа в sets
против lists
.
myset = set()
leftover = []
x = 2
def add(x):
if x not in mylist:
mylist.add(x) # sets use .add() instead of .append()
print('True')
print(myset)
print(list(myset)) # IF you need to print out a list, you can
# convert sets to lists by encapsulating
# the myset with the list() factory function
# BUT if you do this every cycle you prolly
# start to lose the performance benefits.
else:
leftover.append(x)
print('False')
print(leftover)
add(x)