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 |
。
您的代码不打印,因为您的函数没有
如果你这样打印,你会看到列表没有变化,因为你的列表中没有
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'] |
。