简体   繁体   English

Python 列表切片和索引,更好的方法

[英]Python list slicing and indexing, better way

I have a given number 15. I have to group it with each group of 5 elements, and get tuple as follows.我有一个给定的数字 15。我必须将它与每组 5 个元素进行分组,并得到如下元组。

num = 15
div = int(15/3)


groups = list(zip(range(div), range(div, div+div), range(div+div, div+div+div)))

for group in groups:
   print (group)


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

It is printing expected result.它正在打印预期的结果。 However, what would be better way of doing it?但是,有什么更好的方法呢?

To specifically use slicing, you step by div in a slice of list(range(num)) :要专门使用切片,您可以在list(range(num))的切片中逐步使用div

num = 15
div = int(15/3)
num_list = list(range(num))

for idx in range(div):
    print(num_list[idx::div])

Edit: including num_list optimisation thanks to @Jordan Brière.编辑:包括num_list优化感谢@Jordan Brière。

你可以在一行中很容易地做到这一点,也许我错过了一些东西

lst = [(i, i+div, i+2*div) for i in range(div)]

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM