迭代元组移位列表的 Pythonic 方法

标签 python python-3.x loops iteration

给定一个列表 L = [('a',3),('b',4),('c',14),('d',10)], 所需的输出是元组的第一项和下一个元组的第二项,例如:

a 4
b 14
c 10

直接但非 pythonic 的方式是

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)

但是好像有点浪费。有没有标准的方法来做到这一点?

最佳答案

我个人认为这两个选项都很好可以提取项目并加入它们:

pairs = zip(map(itemgetter(0), L), map(itemgetter(1), L[1:]))
# [('a', 4), ('b', 14), ('c', 10)]

关于迭代元组移位列表的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056530/

相关文章:

python - 在 python 中获取 keyerror

python - 如何使用 url 将 python 套接字客户端连接到服务器套接字?

控制命令行提示符

python - 如何编写一个程序来获取一个数字并通过不将数字除以 5(在 python 中)来检查它是否可以被 5 整除

java - 循环内的计时器?

java - 如何循环这个if语句?

python - 使用 Flask-Security 的每个用户唯一的盐

python - 类(Python)和结构(C)之间的区别

python - 尝试访问命令行变量时出现 Pytest KeyError

python - 属性错误 : module '' has no attribute '__path__'