Python:如何从列表中删除五个元素中的所有元素

How to remove all elements of five from a list

本问题已经有最佳答案,请猛点这里访问。

我的代码返回"无"。如果我的问题不清楚,如果我拿着清单[1,3,4,5,5,7],我想把清单[1,3,4,7]退回。我的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
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())


这次使用列表理解可能会很方便。

1
2
3
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
[1, 3, 4, 7]

注意:对字符串变量使用casting,如下所示:

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


更改此:

1
2
3
def remove_five():
    while 5 in list4:
        list4.remove(5)

为此:

1
2
3
4
def remove_five():
    while '5' in list4:
        list4.remove('5')
    return list4


您的代码不打印,因为您的函数没有return语句。

如果你这样打印,你会看到列表没有变化,因为你的列表中没有5,你有'5'(字符串)

1
2
remove_fives()
print(list4)

如果要添加整数而不是字符串,则需要强制转换它

1
append(int(input

如果你想创建一个没有5个的列表,尝试列表理解

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

或者将输入保持为字符串

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