arrays - 有效操作 3d 数组中列表的最佳方法?
问题描述
我在一个 3d 数组中获得了 n 个列表。这些列表代表时间。因此,例如,这些列表之一可能是 (1,4),这意味着 1:00、2:00、3:00、4:00 的“忙碌”。那么对于 3d 数组中的所有 n 个列表,将 (1,4) 转换为 (1,2,3,4) 的有效方法是什么。请记住,n 可能高达 10000。我可能在这里是个白痴,但感谢您的帮助。
///requests is the array being given. eg [(1,4),(2,9),(4,5)]
numberOfRequests=len(requests)
mostTaxi=1
talArray=[]
//Very ineffiecient way of solving current problem
for x in range(0,numberOfRequests):
for y in range((requests[x][0]),(requests[x][1])+1):
talArray.append(y)
//
busiestTime=max(set(talArray), key = talArray.count)
mostTaxi=talArray.count(busiestTime)
return mostTaxi
'''
解决方案
如果元组代表(start, end)
任务的时间,那么您只需end - start
从每个元组中获取(它将代表花费的小时数)并获取最大值。
times = [
[(1,4),(2,9),(4,5)],
[(1,4),(1,20),(4,11)]
]
def calculate_time(t):
start, end = t
return end - start
longest = max((max(map(calculate_time, each)) for each in times))
print("The longest task took", longest , "hours")
推荐阅读
- python - 如何在 Pandas 数据框中正确绘制条形图?x 值继续显示为索引
- javascript - 如何让我的 javascript 函数在 head 标签内工作?
- javascript - 追加新select2后更改
- html - HTML Django模板中每个页面的边距变化
- kubernetes - k8s资源内存限制是指什么,集群还是容器本身?
- android - CameraX:如何添加捏合缩放和点击对焦?onClickListener 和 onTouchListener
- aws-cli - 即使我在配置中提到过,aws cli 也会要求提供区域
- python - 为什么 python 多线程在 macOS 上像单线程一样运行?
- python - 如何使用 OPenCv python 从整个图像中仅裁剪表格?
- c# - 从列表生成的 IQueryable where 子句需要一起进行 OR'd