【问题标题】:Convert simple list comprehension into for loops将简单的列表推导转换为 for 循环
【发布时间】:2017-12-05 23:58:33
【问题描述】:

我的目标是将此列表理解转换为 for 循环:

[[x * y for x in  [1, 2]] for y in [3, 4, 5]]
# gives [[3,6], [4,8], [5,10]] 

我唯一能找到的:

List = []
for y in [3, 4, 5]:
    for x in [1, 2]:
        List.append([y * x])
# Gives [[3], [6], [4], [8], [5], [10]]

我觉得自己很傻,但我很难找到解决办法。

【问题讨论】:

    标签: python for-loop list-comprehension


    【解决方案1】:

    你需要在 for 循环之间有一个临时列表:

    List = []
    for y in [3, 4, 5]:
       l = []
       for x in [1, 2]:
           l.append(x*y)
       List.append(l)
    

    输出:

    [[3, 6], [4, 8], [5, 10]]
    

    【讨论】:

    • 感谢您的帮助!现在看来很明显了。
    【解决方案2】:

    去掉方括号

    List = []
    for y in [3, 4, 5]:
        for x in [1, 2]:
            List.append(y * x)
    

    在计算周围添加方括号使其成为python中的列表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      相关资源
      最近更新 更多