python - 比较同一列表中的两个相邻元素
问题描述
我已经看过一篇文章,但我想知道我在使用for
循环时在代码中做错了什么。
列表a
如下:
a = [2, 4, 7,1,9, 33]
我只想比较两个相邻的元素:
2 4
4 7
7 1
1 9
9 33
我做了类似的事情:
for x in a:
for y in a[1:]:
print (x,y)
解决方案
对于内部循环中的每个值,您的外部循环都会持续存在。要比较相邻元素,您可以使用其自身的移位版本zip
的列表。可以通过列表切片来实现移位:
for x, y in zip(a, a[1:]):
print(x, y)
在一般情况下,如果您的输入是任何可迭代而不是列表(或另一个支持索引的可迭代),您可以使用在库中也可用的itertools
pairwise
recipemore_itertools
:
from more_itertools import pairwise
for x, y in pairwise(a):
print(x, y)
推荐阅读
- pointers - 两个指向同一内存的指针和 realloc 失败
- python - 比较 2 次并在几分钟内得到差异
- java - JUnit4 的数据库访问延迟?
- google-cloud-platform - 为什么我的 webapp.sh 没有运行并且磁盘没有附加到我的 GCP 实例?
- pandas - 具有最大总和值的类别列的熊猫组数据框
- python - 不存在这样的文件或目录来自服务器请求的错误
- python - 如何使用 Python openCV 仅在这张表格的图像中找到左上角框的位置(x、y、宽度、高度)?
- azure - 使用 Azure 防火墙的随机连接断开 - 没有可观察到的模式
- python - 如何更改我的 requests.get() 函数的发送方式?
- php - 我的网站总是内存不足(致命错误)