我很难把一个列表分成偶数和奇数,变量奇数和偶数表示它们各自的数字。
教授指出,这一行代码:
odd, even = foo([1,2,3,4,5,6], lambda x : x % 2 == 0)应该把数字分成奇数和偶数。我该怎么做这样的事?我知道如何在奇数和偶数之间过滤,但我不知道如何在一行中设置两个变量,与它们各自的部分相等。
发布于 2015-05-18 22:34:49
在您的示例中,foo是一个函数,并返回一对变量。例如:
def foo():
a = 1
b = 2
return (a, b)
x, y = foo() # x is now '1', and y is now '2'因此,您需要创建一个遍历输入列表的函数,并将元素分配给odd列表或even列表。然后返回这两个列表,如上面的示例所示。
发布于 2015-05-18 22:34:58
返回包含奇数值和偶数值的元组。离你的功能最近的是:
>>> 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]这项任务被称为元组解压。这样,当您返回逗号分隔变量和左手侧相同数量的变量时,左手侧的每个变量将分别分配给右边的变量。
https://stackoverflow.com/questions/30313795
复制相似问题