Python间隔interesction
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python间隔interesction,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含757字,纯文字阅读大概需要2分钟。
内容图文
![Python间隔interesction](/upload/InfoBanner/zyjiaocheng/723/c0b7dad7113848f8bb3b13b297b4356b.jpg)
我的问题如下:
有文件的间隔列表:
1 5
2 8
9 12
20 30
并且范围广泛
0 200
我想做这样一个交集,它将报告我在给定范围内的间隔之间的位置[开始结束].
例如:
8 9
12 20
30 200
除了任何想法如何咬这个,也很高兴阅读一些关于优化的想法,因为一如既往的输入文件将是巨大的.
解决方法:
此解决方案的工作时间间隔按起点排序,并且不需要创建与总范围一样大的列表.
码
with open("0.txt") as f:
t=[x.rstrip("\n").split("\t") for x in f.readlines()]
intervals=[(int(x[0]),int(x[1])) for x in t]
def find_ints(intervals, mn, mx):
next_start = mn
for x in intervals:
if next_start < x[0]:
yield next_start,x[0]
next_start = x[1]
elif next_start < x[1]:
next_start = x[1]
if next_start < mx:
yield next_start, mx
print list(find_ints(intervals, 0, 200))
输出:
(在您给出的示例中)
[(0, 1), (8, 9), (12, 20), (30, 200)]
内容总结
以上是互联网集市为您收集整理的Python间隔interesction全部内容,希望文章能够帮你解决Python间隔interesction所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】