python - 拆分列表中的元素并计算给定周的小时数
问题描述
我有一个字符串,它表示 EC2 实例在一周中的每一天开启和关闭的时间 - 请参阅附图以供参考。
从图像产生的字符串如下:,,4,15,,,4,9,,,5,10,,
我想拆分此字符串并计算 EC2 实例处于“开机”状态的小时数。
在这种情况下,我相信它将是 (15-4) + (9-4) + (10-5) = 12。
仍在学习 Python,所以我确信我可以想出一种蛮力方法来计算它。但是,我正在寻找不使用太多循环的“优雅”解决方案的指针。
请保持安全并保持友善。
解决方案
以下将解决问题:
s = ",,4,15,,,4,9,,,5,10,,"
tokens = (int(t) for t in s.split(',') if t)
sum(y - x for x, y in zip(tokens, tokens))
# 21
tokens
是对字符串中编码的所有整数的迭代器。通过zipping
它本身,我们可以获得连续的相邻对,我们可以克服它们的差异sum
。或者,如果您更喜欢列表和切片:
tokens = [int(t) for t in s.split(',') if t]
sum(tokens[1::2]) - sum(tokens[::2])
# 21
推荐阅读
- pdf - PDF 版本 1.x 指的是什么?
- vb.net - VB.Net 更改 ListBox 上的高亮颜色
- angular - 如何使用 Keycloack 和 Angular 在同一浏览器中保持会话?
- c# - 使用 Action C# 将一个函数调用到另一个函数中
- python - Pandas read_csv 在第一个换行符处结束读取
- xml - 获取 XSLT 中元素的数量
- javascript - 单击元素但在元素内部的东西上启动事件
- python - python中的实例方法和@classmethod和@staticmethod有什么区别?
- sql - 如何在SSRS中获得2次之间的差异
- python - 如何快速迭代不同长度的多个列表