gpt4 book ai didi

python - 将字符串拆分为给定大小的组

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:49 25 4
gpt4 key购买 nike

我的情况是我有一个带时间戳的项目列表,但实际的一天中的时间都被压在一起了。像这样:

time = "165420" # 16:54:20 (or, 4:54 PM and 20 seconds.)

我想要一个脚本来遍历这些行并能够将时间戳转换为日期时间。我已经有了年、月、日,这没问题。但就当时情况而言,我迫切希望找到一个优雅而简单的解决方案。我决定先暴力破解它以继续我的代码,结果是:

import datetime

dt_timestamp = extract_dt("2012-11-09-165420") # example

def extract_dt(timestamp):
ds = timestamp.split('-') #split into groups (0,1,2 are the date, 3 is the time.
d = [int(i) for i in ds[:3]] + [int(ds[3][0:2]), int(ds[3][2:4]), int(ds[3][4:6])]
return datetime.datetime(*d)

在尝试解决我的情况时,我看到了这个问题的许多变体和许多答案。

我找到了 this solution :

def nsplit(s, n):
return [s[k:k+n] for k in xrange(0, len(s), n)]

这对我来说效果很好:

>>> s = "165420"
>>> n = 2
>>> [s[k:k+n] for k in xrange(0, len(s), n)]
['16', '54', '20']

但我很确定必须有更好、更优雅的方法将字符串拆分为大小相等的组,如 link 中所述我提供了(但已修复,因为链接张贴者有错字):

TheFunction("Hello World",3)

Returns:

['Hel','lo ','Wor','ld']

如果可能的话,我宁愿它不是一个函数,我想要一种内联的方法。它应该尽可能高效。我总是可以从我找到的函数中提取列表推导,但我感觉它不是很有效,而且看起来也不对。

答案可能非常简单,我只是不知道。再次感谢。

最佳答案

我不知道还有比您在问题中提到的更优雅的字符串分块解决方案,但是 datetime.datetime.strptime()解决您的实际问题:

>>> from datetime import datetime
>>> datetime.strptime("2012-11-09-165420", "%Y-%m-%d-%H%M%S")
datetime.datetime(2012, 11, 9, 16, 54, 20)

关于python - 将字符串拆分为给定大小的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com