如何迭代整数对列表,计算新的“联合对”

eo

我有一个表示年范围的整数对的列表,需要计算连续(在1年内)的对的并集范围。

输入示例:

ts_list = [[1777, 1777], [1778, 1783], [1786, 1791], [1792, 1795]]

期望的输出

[[1777, 1781], [1786, 1795]]

我已经尝试过for和while循环,并且可以在第一个脱节之前获得并集,但是我对如何正确地进行迭代感到困惑-例如,这产生了一个新列表

[[1777, 1783], [1778, 1783], [1786, 1795]]

然后返回Type错误:'int' object is not subscriptable"第一对和第三对是正确的,但是第二对是无关的

ts_list = [[1777, 1777], [1778, 1781], [1786, 1791], [1792, 1795]]
newlist=[]
last = ts_list[len(ts_list)-1][1]
for x in range(len(ts_list)):
   ts=ts_list[x]
   start = ts[0]
   end = ts[1]
   ts_next = ts_list[x+1] if x<len(ts_list)-1 else last
   if ts_next[0]-end > 1:
       # next is disjoint, break out
       newlist.append([start,end])
   else:
       # next is contiguous (within 1 year)
       newlist.append([start,ts_next[1]])
蒂埃里·拉图耶(Thierry Lathuille)

您可以这样做:

ts_list = [[1777, 1777], [1778, 1781], [1786, 1791], [1792, 1795]]

# We start with the first range
out = [ts_list[0]]
for start, end in ts_list[1:]:
    if start <= out[-1][1] + 1:
        # if the new range starts at most one year
        # after the end of the previous one, we extend it:
        out[-1][1] = end
    else:
        # otherwise, we append this new range to the output
        out.append([start, end])

print(out)

# [[1777, 1781], [1786, 1795]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从整数列表中计算等级?

来自分类Dev

如何使用地图计算列表中整数列表的总和并获得一个新列表,其中每个条目对应于每个计算出的总和?

来自分类Dev

如何计算联合分布的熵?

来自分类Dev

Dart:如何迭代整数?

来自分类Dev

如何计算列表中整数的出现并正确输出?

来自分类Dev

如何在Bash中计算整数列表的总和

来自分类Dev

在嵌套列表中计算整数

来自分类Dev

计算列表中的整数值

来自分类Dev

如何计算重复的整数

来自分类Dev

如何在迭代另一个列表时填写新列表?

来自分类Dev

Elixir 如何一次迭代两个列表以生成一个新列表?

来自分类Dev

迭代打印列表中的每个整数

来自分类Dev

如何从联合声明新类型?

来自分类Dev

迭代字典列表以计算人口密度

来自分类Dev

将整数除以列表以创建新列表

来自分类Dev

如何对整数列表求和并将每个步骤保存到新列表?

来自分类Dev

在for循环的每个迭代中追加新列表

来自分类Dev

使用 map 和函数列表迭代整数列表

来自分类Dev

每次迭代或遍历文档列表时如何创建新的PDF文件?

来自分类Dev

F#:整数(%)整数-如何计算?

来自分类Dev

如何迭代到元组列表

来自分类Dev

如何迭代列表并构建树

来自分类Dev

如何迭代 Twilio SMS 的列表?

来自分类Dev

如何迭代对象项列表

来自分类Dev

计算列表中所有整数的出现

来自分类Dev

计算列表中所有整数的出现

来自分类Dev

计算列表中整数的出现次数

来自分类Dev

如何用State monad计算Haskell中列表中的偶数个整数?

来自分类Dev

Java Stream迭代列表中的列表并计算布尔值