写一行代码在不同的数组中得到奇数和偶数

2024-10-16 17:16:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在一次tcs codevita采访中我被问到这个问题。给定一个数组

a = [1,2,3,4,5,6,7,8,9,10]

您必须用Python编写一行代码,这样就可以得到两个不同的数组/列表,其中一个包含奇数,另一个包含偶数。i、 一张单子

^{pr2}$

和其他列表

even =[2,4,6,8,10]

我不能在一行中写这段代码。有人能告诉我怎么用一句话来解决这个问题吗?在


Tags: 代码列表数组单子even奇数偶数tcs
3条回答

您可以在一行中使用两种列表理解:

odd, even = [el for el in a if el % 2==1], [el for el in a if el % 2==0]

print(odd, even)
#([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

您可以使用步骤2对列表进行切片:

odd, even = a[::2], a[1::2]

列表理解就是答案。 但是,与其同时理解奇偶列表的构造,不如从原始列表a中取出一种(在本例中为偶数)并放入它的列表中,您在a中剩下的将是另一种(奇数):

>>> even, odd = [a.pop(index) for index, item in enumerate(a) if item % 2 == 0], a
>>> print(even,odd)
[2, 4, 6, 8, 10] [1, 3, 5, 7, 9]

相关问题 更多 >