我对这里的代码有几个问题。我要做的是编写一个函数,该函数接受 2 个输入、一个列表和一个选项,选项为 0 或 1,并返回列表中的数字列表。如果选项为 0,它将返回大于 5 或小于 -5 的数字。如果选项为 1,它将返回第一个列表中所有奇数的列表。这就是我现在的代码:
def splitList(myList, option):
nList = []
for element in range(0,len(myList)):
if option == 0:
if myList[element] > 5:
nList.append(element)
return nList
现在我让它返回一个元素是否大于 5 的列表,但它返回它们在列表中的位置,而不是实际值。说我运行了程序
splitList([-6,4,7,8,3], 0)
它会返回 [2, 3]
我也希望它返回 7 和 8 以及 -6 的值,但我知道到目前为止我没有正确的代码来返回 -6。有人可以指导我正确的方向。另外,我想在这里使用 for 循环。如果选项为 1,我也不知道如何返回奇数。
这是我的有效代码:
def splitList(myList, option):
nList = []
for element in myList:
if option == 0:
if abs(element) > 5:
nList.append(element)
elif option == 1:
if element % 2:
nList.append(element)
return nList
我怎么能把它切换到一个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