def lengthgood(x):
for i in x:
if len(i)<13
return i
else:
pass
def makeproperlist(x):
return x.split(',')
attendancelist=makeproperlist(input("attendee list:"))
final_list=list(filter(lengthgood,attendancelist))
for i in finallist:
print (i)
我想写一个程序,其中我创建了一个列表,其中只有小于14的元素可以是其中的一部分。你知道吗
这是我的代码,但它会不断返回我输入的所有元素,即使其中一些元素的长度超过14?你知道吗
我试着打印len(i)
,它说列表中的每个元素都是1?你知道吗
我该怎么解决这个问题?你知道吗
不应该将
return
放在循环中;它只返回与条件匹配的第一个元素。你知道吗您也不应该在filter函数中循环,因为实际上是在字符串的字符上循环,这些字符串的长度都是1。你知道吗
因此,第一个字符总是返回真实值,在过滤后返回初始输入
您只需要检查输入长度,理想情况下,filter函数应该返回适当的布尔条件,而不是truthy值(在您的例子中
return i
返回的是非空字符串)如果不需要使用
filter()
,可以编写一个列表可能是这样
或更短
你想创建一个列表,但你不能在程序中的任何地方定义它,只需要一个函数
makeproperlist(x)
。试试这个代码,兄弟,这会帮你的。你知道吗
相关问题 更多 >
编程相关推荐