【问题标题】:Problem in list comprehension output in pythonpython中列表理解输出的问题
【发布时间】:2021-01-09 20:23:47
【问题描述】:

我有以下列表

d=[[(1.0,1.1,1223),(2.0,1.1,1224)],[(3.0,1.1,1222),(4.0,1.1,1222)],[(5.0,1.1,1222),(1.0 ,1.1,1222)]]

我想使用列表推导获得以下结果:

[[(1.0, 1.1), (2.0, 1.1)], [(3.0, 1.1), (4.0, 1.1)], [(5.0, 1.1), (1.0, 1.1)]]

我已经这样做了

g= [d[i][y][:2] for i in range(len(d)) for y in range(len(d[i]))]

但是,我得到了这个输出:

[(1.0, 1.1), (2.0, 1.1), (3.0, 1.1), (4.0, 1.1), (5.0, 1.1), (1.0, 1.1)]

哪里出错了?

【问题讨论】:

    标签: python-3.x list tuples


    【解决方案1】:

    如果你想要一个列表理解,你需要使用一个考虑到你的列表 d 是嵌套的,

    g = [[y[:2] for y in x] for x in d]
    

    这里,外部列表推导循环遍历 d 的内部列表,而内部列表推导循环遍历这些内部列表中的元组。

    【讨论】:

      【解决方案2】:

      这段代码打印出你想要的输出:

      l = [[(1.0,1.1,1223),(2.0,1.1,1224)],[(3.0,1.1,1222),(4.0,1.1,1222)],[(5.0,1.1,1222),(1.0,1.1,1222)]]
      
      b = []
      
      times = 0
      
      for a in l:
          b.append([])
          for x in range(2):
              b[times].append((a[x][0],a[x][1]))
              
          times += 1        
                  
      print(b)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 2022-11-02
        • 2021-06-11
        • 1970-01-01
        • 2022-07-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多