2024-10-16 17:16:14 发布
网友
在一次tcs codevita采访中我被问到这个问题。给定一个数组
a = [1,2,3,4,5,6,7,8,9,10]
您必须用Python编写一行代码,这样就可以得到两个不同的数组/列表,其中一个包含奇数,另一个包含偶数。i、 一张单子
和其他列表
even =[2,4,6,8,10]
我不能在一行中写这段代码。有人能告诉我怎么用一句话来解决这个问题吗?在
您可以在一行中使用两种列表理解:
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中剩下的将是另一种(奇数):
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]
您可以在一行中使用两种列表理解:
您可以使用步骤2对列表进行切片:
列表理解就是答案。 但是,与其同时理解奇偶列表的构造,不如从原始列表
a
中取出一种(在本例中为偶数)并放入它的列表中,您在a
中剩下的将是另一种(奇数):相关问题 更多 >
编程相关推荐