【问题标题】:create list from repeated pattern in python从python中的重复模式创建列表
【发布时间】:2018-09-25 09:04:47
【问题描述】:

我想在 python3 中创建一个列表,如下所示:

L = [(0,(0,1,2,3,4)), (1, (5,6,7,8,9)),(2,(10,11,12,13,14))......)

我们称之为L= [(i,(j1,j2,j3,j4,j5),...)

重要的是模式不断重复,直到 j5 达到740231

非常感谢任何建议。

【问题讨论】:

    标签: python python-3.x list tuples


    【解决方案1】:

    另一种方式,严格理解:

    L = [(i,tuple(range(i*5,i*5+5))) for i in range(740231//5+1)]
    

    【讨论】:

      【解决方案2】:

      这是使用enumeraterange 的一种解决方案:

      n = 5
      k = 14
      
      ranger = (range(i, i+n) for i in range(0, k, n))
      L = list(enumerate(map(tuple, ranger)))
      
      # [(0, (0, 1, 2, 3, 4)), (1, (5, 6, 7, 8, 9)), (2, (10, 11, 12, 13, 14))]
      

      【讨论】:

        【解决方案3】:

        使用生成器函数:

        def gen():
           x = 0
           y = 0  
           while y < 740231:
               yield( (x, tuple(range(y,y+5)), ) )
               x += 1
               y += 5
        

        >>> list(gen())
        [(0, (0, 1, 2, 3, 4)), (1, (5, 6, 7, 8, 9)), (2, (10, 11, 12, 13, 14)) ... ]
        

        【讨论】:

          猜你喜欢
          • 2011-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-11
          • 2015-12-26
          • 2018-05-23
          相关资源
          最近更新 更多