python-3.x - 如何将连续编号的数组转换为时间戳
问题描述
我正在设备上收集数据,每秒更新一次计数并记录它。我现在正在处理它,并且是 python 的新手,所以我有一个问题,例如是否可以将编号数组[0,1,2,3,4,...1091,1092,1093,...]
转换为时间戳[00:00:01, 00:00:02, 00:00:03, 00:00:04, ... 00:18:11, 00:18:12, 00:18:13,...]
。
如果您能引导我朝着正确的方向前进,那将不胜感激!
ps 将来,我会将数据记录为时间戳,但现在,我有 5 小时的数据需要处理!
解决方案
如果你只有秒,那么你可以做简单的算术将它们转换为分钟和小时:
inp = [0, 1, 2, 3, 4, 1091, 1092, 1093]
outp = [f'{secs // 3600:02}:{(secs // 60) % 60:02}:{secs % 60:02}' for secs in inp]
print(outp)
# ['00:00:00', '00:00:01', '00:00:02', '00:00:03', '00:00:04', '00:18:11', '00:18:12', '00:18:13']
在这里,我使用列表推导,并为secs
输入中的每一个创建一个格式字符串:
- 小时是
secs // 3600
(这是整数下除法),因为一小时是 3600 秒 - 分钟是
(secs // 60) % 60
(这包含了模运算符,它显示secs // 60
再次除以 60 后的余数)。一分钟是 60 秒,但超过 60 分钟就是一个小时,所以我们需要确保每 60 分钟“翻转”一次计数器(这就是 mod 的用途)。 - 秒当然是
secs % 60
,因为一分钟有 60 秒,我们希望计数器翻转。
格式字符串以 开头f'
,其中的任何内容{}
都是评估其中内容并将其插入字符串的指令。语法是{expression:format}
,其中display
是关于如何格式化数据(即不仅仅是打印出来)的可选指令。并且format
可能会变得复杂(如果您对细节感到好奇,请查看 python f-string 教程),但只要说在这种情况下我们使用 就足够了02
,这意味着我们希望输出长度为两个字符,并且用零填充以防它小于该值。
推荐阅读
- python - 使用 cv2 进行 Python 眼睛检测
- python - 试图从以','结尾的字符串中获取所有链接
- python - 在使用请求和美丽汤抓取页面时接受 cookie
- mongodb - Spring Boot(内存)中的 MongoDbTest 不尊重唯一索引
- c# - 使用 OnCollisionEnter2D() Unity 2D 时仅使用我的游戏对象的 1 个对撞机
- html - Shopify:如何在 2 个地方放置多币种表格(在页眉和 MobileMenu 中 - 用于响应式设计)
- python - 如何在带有两个 DataFrame 的 pandas 中使用替换?
- wpf - 其他元素折叠时 WPF UI 元素不会增长
- maven - Maven/Xtext:找不到字符串资源“_UI_DiagnosticRoot_diagnostic”
- sed - 如何删除单独但不是数据一部分的正斜杠?