绝对值并添加到列表中

时间:2013-10-11 15:26:04

标签: python python-3.x

大家好我正在使用Python而我正在尝试编写一个带有列表和选项(1或0)的函数。如果该选项为0,则返回一个新列表,其中所有数字的绝对值都大于5,如果该选项为1则返回所有奇数。

我几乎有0个选项正常工作,但当我试图找回一个列表时,它只是保持空白,我想知道是否有人可以帮助我找到附加列表元素我做错了什么。

到目前为止我的代码:

def splitList(myList, option):
    myList = []
    myList2 = []
    if option == 0:
        for element in myList:
            if abs(element)>5:
                myList2.append(element)
    print(myList2)

3 个答案:

答案 0 :(得分:3)

您希望返回该函数的结果;最后添加return语句:

return myList2

此外,您将myList重新绑定到函数开头的空列表中;完全删除该行;否则你忽略了传递给函数的myList参数:

def splitList(myList, option):
    myList2 = []
    if option == 0:
        for element in myList:
            if abs(element)>5:
                myList2.append(element)
    return myList2

您可以简化循环以使用列表解析:

def splitList(myList, option):
    if option == 0:
        return [el for el in myList if abs(el) > 5]

答案 1 :(得分:3)

您正在接受列表的参数,但随后将其覆盖为[],因此myList在进入for循环之前是空的

答案 2 :(得分:2)

您可以使用list comprehension轻松完成此操作:

def splitList(myList,option):
  if option==0:
    return [x for x in myList if abs(x)>5]
  return [x for x in myList if (x%2)==1]