0
提取两个数字是否有下面的代码pythonic的方法:在每次循环迭代
for i in range(len(a)/2):
print a[2*i], a[2*i+1]
在每次循环迭代我想提取接下来的两个数字。
顺便说一句,我使用Python 2.7
提取两个数字是否有下面的代码pythonic的方法:在每次循环迭代
for i in range(len(a)/2):
print a[2*i], a[2*i+1]
在每次循环迭代我想提取接下来的两个数字。
顺便说一句,我使用Python 2.7
使用grouper
从itertools
documentation:
from itertools import izip_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 izip_longest(fillvalue=fillvalue, *args)
用法:
>>> a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
>>> for a, b in grouper(a, 2):
... print a, b
...
a b
c d
e f
g h
i j
可以跳过编号,与range
功能本身,这样
for i in range(0, len(a), 2):
它将开始与0
和迭代,直到len(a)
,但它会将i
的值增加2.因此,您的逻辑可以简单写成这样:
print a[i], a[i+1]