arrays - 将列表中的每个元素相互比较并打印模式
问题描述
我定义了一个列表:
my_list = [1,34,56,78,97,889]
应该比较每个元素并打印其左侧最小值。
例如:比较 1 和 34,1 小于 34,所以追加到一个新的列表中,以此类推,直到列表中的最后一个元素。
我的代码是:
lio = [1,34,56,78,97,889]
i = 0
liu = []
while i <= len(lio) - 1:
if lio[i] < (lio[i + 1]) - 1:
liu.append(lio[i])
print(liu)
i = i + 1
当我运行它时,它会打印到 97,然后它显示列表索引超出范围。
解决方案
利用enumerate
前任:
lio = [1,34,56,78,97,889]
i = 0
liu = []
l = len(lio)
for i, v in enumerate(lio):
if i+1 == l: #Check if end of list
continue #Skip processing
if v < (lio[i + 1]):
liu.append(v)
print(liu)
i = i + 1
推荐阅读
- sql - 如何使 SQL 查询与 AWS Athena Presto 兼容
- c++ - 除非文本被复制和粘贴,否则作为 C++ 程序输入的文本文件将不起作用
- google-cloud-platform - 为什么云函数会在数字和字母数字执行 ID 之间切换?
- autodesk-forge - forge Viewer - 如何以编程方式选择 dbId,因为它会自动取消选择其他选择
- r - knn 循环结果列表中的精度与实际 knn 精度不同
- vector - 如何在不创建新对象的情况下将向量向量转换为切片向量?
- azure-cosmosdb - 使用 Azure 数据工厂处理 Cosmos DB 中的每个项目
- git - 重新设置分支给我一个非快进错误
- java - EclipseLink 中的批量乐观锁定查询
- ios - UIButton 子类在没有 setTitleColor(_ , for state:) 的情况下更改标题颜色 [Swift]