我有一套像(669256.02,6117662.09,669258.61,6117664.39,669258.05,6117665.08),我需要迭代,如
for x,y in (669256.02, 6117662.09, 669258.61, 6117664.39, 669258.05, 6117665.08)
print (x,y)
会打印
669256.02 6117662.09
669258.61 6117664.39
669258.05 6117665.08
im on Python 3.3 btw
答案 0 :(得分:60)
您可以使用迭代器:
>>> lis = (669256.02, 6117662.09, 669258.61, 6117664.39, 669258.05, 6117665.08)
>>> it = iter(lis)
>>> for x in it:
... print (x, next(it))
...
669256.02 6117662.09
669258.61 6117664.39
669258.05 6117665.08
答案 1 :(得分:16)
>>> nums = (669256.02, 6117662.09, 669258.61, 6117664.39, 669258.05, 6117665.08)
>>> for x, y in zip(*[iter(nums)]*2):
print(x, y)
669256.02 6117662.09
669258.61 6117664.39
669258.05 6117665.08
答案 2 :(得分:6)
grouper
食谱部分中的itertools
示例应该可以帮助您:
http://docs.python.org/3.3/library/itertools.html#itertools-recipes
from itertools import zip_longest
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
然后您将使用:
for x, y in grouper(my_set, 2, 0.0): ## Use 0.0 to pad with a float
print(x, y)