python - 如何仅将列表中的数字与下一个数字(邻居)进行比较?
问题描述
我要做的就是将列表中的第一个数字与同一列表中的第二个数字进行比较,将第二个数字与第三个数字进行比较,依此类推。
输入:
lst = [1,2,3,2,1]
输出:
result = ["Lower", "Lower", "Higher", "Higher"]
(1低于2,2低于3,3高于2,2高于1)
这有点难看(列表理解会很棒),但我的方法是:
lst = [1,2,3,2,1]
result = []
x = 0
try:
for i in range(len(lst)):
if lst[x] > lst[x+1]:
result.append("Higher")
#print("Higher")
else:
result.append("Lower")
#print("Lower")
x = x+1
except IndexError:
print(result)
print("Out of range")
解决方案
higher
由于您的字符串lower
基本上是布尔大于/小于的代理,因此您可以使用以下方法使其非常干净:
lst = [1,2,3,2,1]
vals = ['higher', 'lower']
[vals[m < n] for m, n in zip(lst, lst[1:])]
# ['lower', 'lower', 'higher', 'higher']
推荐阅读
- r-markdown - R Markdown - 并排定位表和绘图
- python - python fbprophet 中的 plot_components 返回重复的图
- amazon-web-services - 适用于 Docker 映像的带有 CodeDeploy 的 AWS CD
- django - 如何在 python django last v 中从 Url 获取 id?
- android - 调试模式下的 Android Studio“查看位图”不显示位图
- sql - SQL查询查找在两个日期之间订购的客户的总支出
- wordpress - 如何在重力形式中获取当前页面
- python - 使用变量评估数据框列中的字符串
- android - 按下按钮后如何重复更改textView直到特定情况
- ios - 如何使用浏览器获取授权并返回给原生 iOS 客户端?