迭代列表中3个项目的每个序列

问题描述 投票:-1回答:1

我从服务器收到一个包含1007项的列表。前18个项目现在并不重要,但从18个项目开始的每3个项目需要以相反的方式组合在一起并除以1000

x = [1,2,3,4,5,..,18,19,20,21,22,23...1007]

从18开始循环,取18,19,20并在20,19,18中将它们绑定在一起201918201918/1000并将此值返回为print(201918/1000)

接下来,用21,22,23返回print(232221/1000)做同样的事情

我不想导出模块,我的应用程序请求了很多处理速度,因为正如你所看到的那样,该列表中有很多项目,因此“实时”这些打印可以更好,对于我更喜欢和我一样多的光。

python performance list-comprehension
1个回答
1
投票
def compress( numbers, offset=18, size=3, divisor=1000):
   numbers = numbers[ offset : ]
   op = []
   for i in range( 0, len( numbers ), size ):
     subnumbers = numbers[ i : i + size ]
     subnumbers = [ ::-1]
     subnumbers = map( str, subnumbers )
     val = float("".join(subnumbers ))
     op.append( val / divisor )
   retuen op

这是如何运作的?

  1. 我们按偏移量对数组进行切片。
  2. 给定大小的反向元素
  3. 转换为字符串
  4. 转换为单个字符串并浮动
  5. 划分结果并将其添加到操作列表中
  6. 返回操作列表
© www.soinside.com 2019 - 2024. All rights reserved.