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