我正在尝试编写一个名为splitList(myList, option)
的函数,该函数接受一个列表和一个选项,该选项可以是0
或1
作为参数。如果选项的值是0
,则函数返回一个由myList
中的负元素组成的列表,如果选项的值是1
,则函数返回一个由myList
中的偶数元素组成的列表(我们认为0是偶数,因为它可以被2整除)。
例如:
splitList([1,-3,5,7,-9,-11,0,2,-4], 0)
将返回列表:
[-3,-9,-11,-4]
其中:
splitList([1,-3,5,7,-9,-11,0,2,-4], 1)
将返回列表:
[0,2,-4]
对于这个问题,我必须使用for loop
。
以下是我所拥有的:
def splitList(myList, option):
negativeValues = []
positiveValues = []
evenValues = []
for i in range(0,len(myList)):
if myList[i] < 0:
negativeValues.append(myList [i])
else:
positiveValues.append(myList [i])
for element in myList:
if option == 1:
myList [i] % 2 == 0
evenValues.append(myList [i])
return evenValues
else:
return negativeValues
我唯一做不到的是对列表排序并返回所有可被2整除的数字。
可以从这些基本体构建所有变体:
然后测试:
稍后:所以从@Kos中偷窃,您可以这样写
split_list
:或:
如果
for-loop
在被调用函数的列表理解中,不确定它是否满足您的需要。Also:“函数名应该小写,必要时用下划线分隔单词,以提高可读性。”
在这里使用循环有点多余,因为有一个标准函数
filter
可以执行您想要的操作:返回一个新列表,其中包含与给定谓词匹配的列表元素。我们先定义谓词:
然后您可以很容易地根据
filter
定义函数:我相信这就是你想要达到的:
输出:
相关问题 更多 >
编程相关推荐