【发布时间】:2017-12-16 19:31:51
【问题描述】:
给定一个列表L = [('a',3),('b',4),('c',14),('d',10)],
所需的输出是元组中的第一项和下一个元组中的第二项,例如:
a 4
b 14
c 10
直截了当但不符合标准的方式
for i in range(len(L)-1):
print(L[i][0], L[i+1][1])
或者,这就是我想出的:
for (a0,a1),(b0,b1) in zip(L,L[1:]):
print(a0,b1)
但这似乎很浪费。有标准的方法吗?
【问题讨论】:
-
这两种方法都很好,而我(个人)发现后者使用
zip更具可读性和可理解性。这并没有什么浪费,特别是因为zip在 Python 3 中是惰性的。 -
我唯一要改变的是使用
itertools.islice(L, 1, None)而不是L[1:]。
标签: python python-3.x loops iteration