首页 > 解决方案 > 将列表中的每个元素相互比较并打印模式

问题描述

我定义了一个列表:

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,然后它显示列表索引超出范围。

标签: arrayspython-3.7

解决方案


利用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

推荐阅读