python - 如何检测值高于某个阈值的连续子列表?
问题描述
我有非常基本的编程技能。我的问题是如何检测给定列表的连续子列表,以使子列表的所有成员都高于某个阈值。列表中可能有多个这样的子列表。例如,我们有一个名为 list1 的列表,如下所示:
list1 = [5, 10, 9, 11, 22, 19, 23, 2, 2, -1, 1, 4, 5, 19, 20, 40, 32, 34, 7, 3, -2, 4, 5 , 7 , 22, 23, 24, 35]
我希望能够检测到 18 以上的子列表并检索该子列表中返回其索引的最小值。list1
在: [22, 19, 23]
、[19, 20, 40, 32, 34]
和中有 3 个这样的子列表[22, 23, 24, 25]
。因此,我正在寻找的结果是[5, 13, 24]
每个子列表中最小值的索引。有什么简单的方法可以做到这一点吗?
解决方案
如果我正确理解您正在寻找的内容,这应该可以解决问题。我们的想法是遍历我们的列表并制作小于 18 的数字的较小列表(templist
),然后一旦我们找到一个不大于 18 的数字,我们就知道我们已经完成了添加到这个子列表并可以检查最小值,并且得到它的索引。我只是将内容打印出来,但您可以通过一些小改动轻松保存信息。
list1 = [5, 10, 9, 11, 22, 19, 23, 2, 2, -1, 1, 4, 5, 19, 20, 40, 32, 34, 7, 3, -2, 4, 5 , 7 , 22, 23, 24, 35]
templist = []
for i,l in enumerate(list1):
if(l > 18):
templist.append(l)
else:
if len(templist) > 0:
print(i-len(templist)+templist.index(min(templist)),min(templist))
templist = []
if len(templist) > 0:
print(i-len(templist)+templist.index(min(templist)),min(templist))
templist = []
推荐阅读
- python - Python - 如果 StringSet 中有一个字符串
- nagios - 如何从 Thruk 导出所有主机和服务?
- symfony - “symfony”命令在 Fedora 上不起作用(symfony:找不到命令)
- android - 如何让 Gradle Lint 任务显示所有错误?
- python - 例外:@error:Gekko 中的最大方程长度
- wordpress - 即使用户重定向到正确的 url,kubernetes Ingress 仍显示“404 Not Found”
- azure - 为多租户应用添加服务主体时出错 - New-AzureADServicePrincipal:无法加载文件或程序集“RestSharp,版本=106.3.1.0,
- angular - TypeScript:创建数据访问层的最佳方式
- r - 如何在mutate中划分一列
- java - 如何创建嵌套的 JSONObject