Python функция / списки - PullRequest
       0

Python функция / списки

0 голосов
/ 05 апреля 2020

как мне создать функцию, которая добавляет что-то в пустой список, но если значение уже существует в этом списке, его нельзя добавить, и оно должно go в другой пустой список. Я пробовал это, но это не учитывает, если значение, отличное от x, уже есть в списке

List = []
leftover = []
x = 2

def add(x):
    if myUniqueList[0:] == []:
        myUniqueList.append(x)
        print("True")
        print(myUniqueList)
    elif myUniqueList[0:] == [x]:
        leftover.append(x)
        print("False")
        print(leftover)

add(x)

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Это может сработать. Используя синтаксис 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)
0 голосов
/ 05 апреля 2020
List = []
leftover = []
x = 2

def add(x):
    if x in myUniqueList:
        print("False")
        print(leftover)
        leftover.append(x)
    else:
        myUniqueList.append(x)
        print("True")
        print(myUniqueList)

add(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...