for循环中压缩列表的条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for循环中压缩列表的条件相关的知识,希望对你有一定的参考价值。
我为我的问题准备了一个例子。 (顺便说一下,两个列表中的位数相等)。
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)]
答案
我不清楚你想要得到什么。
您可以使用:
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)]。
请注意,i,j和k是元组!这就是为什么我选择j [0]来检查它是否> = 60
以上是关于for循环中压缩列表的条件的主要内容,如果未能解决你的问题,请参考以下文章
python中的while循环与for循环怎么样那个比较好用?