我正在尝试编写一个函数,它接受一个列表的输入和一个0或1的选项。如果它是0,我想返回一个大于绝对值5的元素列表。如果是选项1,我想返回奇数元素列表。我也想用while循环。我哪里做错了??你知道吗
def splitList2(myList, option):
nList = []
element = 0
while element < len(myList):
if option == 0:
if abs(element) > 5:
nList.append(element)
elif option == 1:
if element % 2:
nList.append(element)
element = element + 1
return nList
我只回答“我哪里做错了?”问题。你知道吗
您使用
element
作为元素索引的名称,这很混乱。实际上,稍后将检查/追加索引,而不是myList中相应的元素!你知道吗替代版本:
而且
while
也不是执行此类任务的最佳选择。我假设您是出于教育的原因,尝试使用while
来实现这一点。然而,一种更为python的方式是:element
是索引,而不是来自myList
的元素。我会将当前的element
变量重命名为index
,然后在while循环的顶部添加element = myList[index]
:当然,在这里使用
for element in myList
循环而不是while循环会更简单。你知道吗相关问题 更多 >
编程相关推荐