[英]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.