【问题标题】:Two separate for-loops in list comprehension列表理解中的两个单独的 for 循环
【发布时间】:2019-12-04 17:25:34
【问题描述】:

是否有可能两个必须在一个理解中分开 for 循环?类似的东西

A = [i * 2 in range(5, 10), j + 2 for j in range(5) ]
# To get A = [10, 12, 14, 16, 19, 2, 3, 4, 5, 6]

最接近我需要的是

A = [*[i * 2 for i in range(5, 10)], *[j + 2 for j in range(5)]]

有没有更好的(更多的python-ic)方法来做到这一点?

【问题讨论】:

  • from itertools import chain; [i for i in chain(range(5, 10), range(5))]?见stackoverflow.com/questions/14099872
  • @Andrew Allen 为什么要遍历可迭代对象? from itertools import chain; A = list(chain(range(5, 10), range(5)))
  • @VigneshBayariR。假设 OP 将使用 i
  • @AndrewAllen 当我想以相同的方式处理两个循环时,这将起作用,为了更清楚,我已经更新了我的问题。

标签: python


【解决方案1】:

您可以同时添加两个列表:

A = [i * 2 for i in range(5, 10)] + [j + 2 for j in range(5) ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2021-12-20
    相关资源
    最近更新 更多