【问题标题】:List comprehension function for odd-even numbers奇偶数的列表理解函数
【发布时间】:2020-03-01 05:39:55
【问题描述】:

我正在尝试打印一个列表,其中包含索引 0 和 1 处的 2 个列表。一个列表包含偶数,另一个包含奇数。 另外,我想通过列表理解来做到这一点,并且只使用一个列表变量。

even_odd = [[],[]]
even_odd = [even_odd[0].append(a) if a%2 == 0 else even_odd[1].append(a) for a in range(20)]

预期输出:

[[0, 2, 4, 6, 8, 10, 12, 14, 16, 18], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]]

使用列表推导

【问题讨论】:

  • 请尝试包含示例输入和预期输出。
  • 您提供的示例对自身之外的任何内容均不执行任何操作,因此它仅生成一个包含 20 个字符串的列表,在“偶数”和“奇数”之间交替。根据您提到的两个列表,您希望实现什么目标?
  • @Grismar 我想他想要像 Input: range(0, 20)Output: [[0,2,4,...,18], [1, 3, 5, ..., 19]] 这我不可能
  • @xxMrPHDxx 为什么你认为这是不可能的?
  • 是的@xxMrPHDxx 是对的..

标签: python python-3.x list list-comprehension


【解决方案1】:

您可以使用两个range 以 2 个间隔进行迭代

even_odd = [list(range(0, 19, 2)), list(range(1, 20, 2))]
# [[0, 2, 4, 6, 8, 10, 12, 14, 16, 18], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]]

【讨论】:

  • 我不希望获得答案,但更重要的是使用列表理解来实现它。感谢您的意见!
  • @AmitPathak 这只是[[i for i in range(0, 19, 2)], [i for i in range(1, 20, 2)]] 的缩短版。
猜你喜欢
  • 1970-01-01
  • 2021-07-18
  • 2017-02-06
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
相关资源
最近更新 更多