Hid*_*guy 2 python loops list python-2.7
我有关于循环的这个问题.想象一下你有这个数据数组:
list = [1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1]
Run Code Online (Sandbox Code Playgroud)
你将如何编写一个循环来检查前一个数字是否较低,以及下一个数字是否在检查之后(条件看起来像这样[5,6,5]).因此循环将到达数字9并打印或保存它,无论如何.
使用next生成器表达式:
lst = [1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1]
res = next(j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j and i == k)
Run Code Online (Sandbox Code Playgroud)
如果您需要所有这些数字,请使用列表理解:
res = [j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j and i == k]
Run Code Online (Sandbox Code Playgroud)
如果您需要的条件将显示高于其上一个和下一个的所有数字:
lst = [1,2,3,4,3,2,3,1,2,1,2,3,4,5,6,7,8,6]
res = [j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j > k]
Run Code Online (Sandbox Code Playgroud)
[4, 3, 2, 8] 打印出来.
说明
zip.next提取这样的三胞胎; 如果不存在这样的三元组,您将遇到StopIteration错误.lst而不是list.| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |