代码之家  ›  专栏  ›  技术社区  ›  Hiddenguy

for循环中压缩列表的条件

  •  0
  • Hiddenguy  · 技术社区  · 6 年前

    我为我的问题准备了一个例子(顺便说一句,两个列表中的位数相等)。

    lst = [10,20,30,40,30,20,70,10,20,10,20,30,40,50,60,70,80,60]
    lst2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
    
    sup = zip(lst,lst2)
    res = [j for i, j, k in zip(sup, sup[1:], sup[2:]) if i < j and j > k and j >= 60.0]
    
    print res
    

    它应该找到那些值,但它没有。有什么想法吗?

    [(70, 7) (80, 17)]
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   kaihami    6 年前

    我不清楚你想得到什么。

    sup = list(zip(lst,lst2))
    

    之后,你可以比较使用你的列表理解。

    res = [j for i, j, k in zip(sup, sup[1:], sup[2:]) if i < j and j > k and j[0] >= 60.0]
    

    返回[(70,7),(80,17)]。

    推荐文章