2017-02-05 3 views
0

Мой код для этого возвращает 'None'. В случае, если мой вопрос не ясен, если я возьму список [1, 3, 4, 5, 5, 7], я хочу, чтобы список [1, 3, 4, 7] был возвращен. Мой код выглядит следующим образом:Как удалить все элементы из пяти из списка

print("This program takes a list of 5 items and removes all elements of 5: ") 

    list4 = [] 
    list4.append(input("Please enter item 1:")) 
    list4.append(input('Please enter item 2:')) 
    list4.append(input('Please enter item 3:')) 
    list4.append(input('Please enter item 4:')) 
    list4.append(input('Please enter item 5:')) 
    def remove_five(): 
     while 5 in list4: 
      list4.remove(5) 
    print(remove_five()) 
+0

То, что вы читаете, это строки. То, что вы пытаетесь удалить, - это 'int'. Кроме того, ваша функция 'remove_five()' ничего не возвращает. – schwobaseggl

+0

Вы напечатали метод, который ничего не возвращает (поэтому None) –

+1

'remove_five' ничего не возвращает –

ответ

0

Ваш код не печатает None, потому что ваша функция не имеет return заявления.

Если вы распечатаны, так что вы бы увидеть список без изменений, потому что у вас нет 5 с в вашем списке, вы '5' (строка)

remove_fives() 
print(list4) 

Если вы хотите добавить целые числа, а не строки, вы должны бросить его

append(int(input 

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

no_fives = [x for x in list4 if x!=5] 

Или держать входные данные как строки

no_fives = [x for x in list4 if x!='5'] 
1

Использование списка понимание может пригодиться на этот раз.

num_list = [1 , 3 , 4 , 5 ,5 , 7] 
num_list = [int(n) for n in num_list if int(n)!=5] 
print(num_list) 

Выход:

[1, 3, 4, 7] 

N.B .: Использование литья для строковых переменных, как показано ниже:

num_list = [int(n) for n in num_list if int(n)!=5] 
+1

Вместо этого используйте 'map':' [n для n в map (int, num_list), если n! = 5] ' –

0

Изменить это:

def remove_five(): 
    while 5 in list4: 
     list4.remove(5) 

к этому :

def remove_five(): 
    while '5' in list4: 
     list4.remove('5') 
    return list4 
Смежные вопросы