【发布时间】:2019-07-09 08:40:16
【问题描述】:
我需要检索序列的长度,这些数字都大于任意选择的值x(某种“严重性”)。
一个序列可以是例如:
list = [4, 3, 4, 5, 2, 5, 6, 5, 5, 6, 7, 6 ]
在这种情况下,场景可能是:
x=6
[1, 3] # since there are only two sequences with values greater than 6 (the 6 alone, and the triplet 6,7,6]
问题类似于:Python: determine length of sequence of equal items in list,仅适用于等号序列。
出于这个原因,在我的“草稿”中,我从列表的最大数量开始(在前面的场景中 x=7),然后用较低的替换它并找到这些序列的长度(将所有 7 替换为6 并运行相同的算法来找到至少为 6) 的序列长度。
没有普通循环的pythonic方法是什么?
【问题讨论】:
-
一个简单明了的
for循环应该不会太难编码。你试过吗? -
那么您是否尝试改编该代码以满足您的目的?你不应该只是期望它会交给你。
-
@jonrsharpe 我不想要代码,我想知道是否存在更好的方法来构建算法。我已经解决了这个问题,从最大严重性开始,迭代地减少一个单位,这样我就得到了正确数量的模式长度。你要我发这个吗?正如我所说,灵感来自于寻找具有相同唯一值的模式长度的类似问题
-
@Ev.Kounis 可能我应该添加我正在为大约 2000 个文件执行此操作,所以我仍然更喜欢非 for 循环选项。但是,是的,你是对的。我想知道是否有办法以这种方式使用 groupby,但我不认为
-
那我不清楚你在问什么。您是否试图确定 x 的适当值?依据是什么?
标签: python algorithm data-structures