[[15, 65], [30, 80], [36, 86], [45, 95], [45, 95]] 一个大列表中嵌套了好多小列表,如何统计区间内的每个点被覆盖了几次呢? 比如如果只看 [15, 65], [30, 80]这两个,30-65 这些点就被覆盖了两次因为数据量很大,所以不能用两层循环。那么有什么方法呢?先行谢过~
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
Python3
>>> from collections import Counter>>> ls=[[15, 65], [30, 80], [36, 86], [45, 95], [45, 95]]>>> c=Counter()>>> for l in ls: c.update(range(*l)) >>> c Counter({45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 50: 5, 51: 5, 52: 5, 53: 5, 54: 5, 55: 5, 56: 5, 57: 5, 58: 5, 59: 5, 60: 5, 61: 5, 62: 5, 63: 5, 64: 5, 65: 4, 66: 4, 67: 4, 68: 4, 69: 4, 70: 4, 71: 4, 72: 4, 73: 4, 74: 4, 75: 4, 76: 4, 77: 4, 78: 4, 79: 4, 36: 3, 37: 3, 38: 3, 39: 3, 40: 3, 41: 3, 42: 3, 43: 3, 44: 3, 80: 3, 81: 3, 82: 3, 83: 3, 84: 3, 85: 3, 30: 2, 31: 2, 32: 2, 33: 2, 34: 2, 35: 2, 86: 2, 87: 2, 88: 2, 89: 2, 90: 2, 91: 2, 92: 2, 93: 2, 94: 2, 15: 1, 16: 1, 17: 1, 18: 1, 19: 1, 20: 1, 21: 1, 22: 1, 23: 1, 24: 1, 25: 1, 26: 1, 27: 1, 28: 1, 29: 1})>>>
添加回答
举报
0/150
提交
取消