我有480个元组的列表。
list = [(7,4), (6, 1), (4, 8)....]
我需要将前六个元组放在一个临时变量中,以对它们进行一些评估。那么我需要采用以下六个元组并将它们放入临时变量并进行相同的评估,然后是接下来的六个元组,依此类推。
我不知道如何在循环中设置它 - 如何获取六个元组,然后从列表中取出接下来的六个元组?或者是否有更简单的方法来设置元组的数据结构来执行此操作?
答案 0 :(得分:1)
这将返回一个列表列表,每个子列表由六个元组组成:
[my_list[i:i+6] for i in range(0, len(my_list), 6)]
请注意,如果您使用的是Python 2,则应使用xrange
代替range
,这样您就不必连续迭代。
答案 1 :(得分:0)
您可以考虑使用for循环来处理它。
myList = [(7,4), (6, 1), (4, 8), (4, 9), (3, 4), (9, 2), (7, 3)]
newList = []
for x in xrange(len(myList)):
if x % 6 == 0:
newList.append(myList[x])
print newList
有更短的方法可以做到这一点,但我认为我的相当可读和整洁。 您还可以使用您需要的任何内容替换newList.append行(例如某种函数)
答案 2 :(得分:0)
from itertools import izip_longest
groups_of_six = izip_longest(*[iter(my_list_of_tuples)]*6)
for a_group in groups_of_six:
do_some_processing_on(a_group)
这是我最喜欢的方式:P
因为它是一个发电机,所以你不会一遍又一遍地循环......
答案 3 :(得分:-1)
你可以简单地使用切片:
while l:
a,l=l[:6],l[6:]
doSomethingWith(a)