首页 > 解决方案 > 根据条件向列表元素添加值(Python)

问题描述

假设我有一个这样的列表:

list = [1, 2.1, 3.3, 4.5, 3.2, 4.7, 1, 3, 3.3, 3.9, 4.9]

现在,每次列表中的后续元素小于前一个元素时,即list[i] < list[i-1]我想将 10 的倍数按升序添加到从这一点到满足条件的下一个点的所有元素。上面示例的结果列表应如下所示:

new_list = [1, 2.1, 3.3, 4.5, 13.2, 14.7, 21, 23, 23.3, 23.9, 24.9]

所以首先添加 10,然后添加 20...我会提到每个间隔的长度是任意长的。

我怎样才能优雅地做到这一点?我通过将列表用作临时列表并通过 for 和 if 循环附加到新列表来完成我想要的,但这看起来相当难看。我想用列表理解来做,但我不知道这是如何工作的。

标签: python

解决方案


list1 = [1, 2.1, 3.3, 4.5, 3.2, 4.7, 1, 3, 3.3, 3.9, 4.9]

for i in range(len(list1)):
    while True:
        try:
            if list1[i] > list1[i+1]:
                list1[i+1] = list1[i+1] + 10
            else:
                break
        except:
            print("Done")
            break
        print(list1)

print("Final List: ")
print(list1)
    

推荐阅读