如何从列表中删除五个元素

时间:2017-02-05 17:26:38

标签: python

我的代码返回'无'。 如果我的问题不清楚,如果我采取列表[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())

3 个答案:

答案 0 :(得分: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 :(得分: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']

答案 2 :(得分:0)

改变这个:

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

到此:

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