将变量设置为仅等于偶数,另一个设置为赔率

时间:2015-05-18 22:30:47

标签: python list variables

我在尝试将列表分成偶数和奇数时遇到问题,变量奇数甚至代表各自的数字。

教授注意到这行代码:

odd, even = foo([1,2,3,4,5,6], lambda x : x % 2 == 0)

应将数字拆分为奇数和偶数。我该怎么办?我知道如何在奇数和偶数之间进行过滤,但我不确定如何在一行中设置两个变量等于它们各自的部分。

2 个答案:

答案 0 :(得分:2)

在您的示例中,foo是一个函数,并返回一对变量。例如:

def foo():
    a = 1
    b = 2
    return (a, b)

x, y = foo()  # x is now '1', and y is now '2'

因此,您需要创建一个迭代输入列表的函数,并将元素分配给odd列表或even列表。然后返回这两个列表,如上例所示。

答案 1 :(得分:1)

返回包含奇数值和偶数值的元组。离函数最近的是:

>>> def foo(l,f):
...     even = filter(f,l)
...     odd = [i for i in l if i not in even]
...     return odd,even
... 
>>> odd, even = foo([1,2,3,4,5,6], lambda x : x % 2 == 0)
>>> odd
[1, 3, 5]
>>> even
[2, 4, 6]

此分配称为 Tuple Unpacking 。这样,当您在左侧返回逗号分隔变量和相同数量的变量时,左侧的每个变量将分别分配给右侧的变量。