python-3.x 3个列表的列表理解

eyh26e7m  于 2023-02-14  发布在  Python
关注(0)|答案(1)|浏览(245)

我需要一些帮助来理解3个python列表。首先,我想检查列表B中的项是否连续。如果不连续,我将把列表a和c中相应的值添加到一个新列表中。如果连续,我将继续,直到找到一个不同的数字来添加a和c的值。
我是这么试的:

a = [40,0,40,40,0,40,0,0,0,40]
b = [1, 2, 3, 3,4,5,7,7,7,8]
c = [1.2,1.1,1.3,1.4, 1.5,1.0, 0.9, 1.6, 0.6, 0.8]

def lst(a, b, c):
    zeros = []
    count = 1
    for i in range(1, len(b)):
        if b[i] == b[i-1] & a[i] == a[i-1]:
            count += 1

        else:
            zeros.append([a[i-1], c[i-1]])

    return zeros

data = lst(a, b, c)

print(data)

不幸的是,它包括了输出中除最后一个值之外的所有内容
我希望看到数据= [[40,1.2],[0,1.1],[40,1.3],[0,1.5],[40,1.1],[0,0.9],40,0.8]]

wrrgggsh

wrrgggsh1#

根据您想要的输出判断,我猜您希望包含index处的元素,其中b大于前一个index处的元素(consecutive表示+= 1):

data = [[a[i], c[i]] for i in range(len(b)) if i==0 or b[i]>b[i-1]]

输出:

[[40, 1.2], [0, 1.1], [40, 1.3], [0, 1.5], [40, 1.0], [0, 0.9], [40, 0.8]]

相关问题