我的情況是我有一個時間戳項目的列表,但實際的時間都是一起擠壓的。就像這樣:將字符串拆分成給定大小的組
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)
返回:
[ '赫爾', '羅', '義和', 'LD']
如果可能的話,我寧願,它不是一個函數,我想要一種方法來實現它。它應該儘可能高效。我總是可以從我找到的函數中提取列表理解,但是我有一種感覺不是很高效,而且看起來不正確。
答案可能很簡單,我只是不知道。再次感謝。
問題已經得到解答 - 但是,如果他們找到更好的解決方案來分割字符串,我仍然想知道是否有人遇到過這種情況。 –