2015-12-18 28 views
-1

我有一些代碼可以從我參加的在線課程中獲取講課時間。由此產生的答案是[['02:29']]的形式。我想我會使用下面的代碼來獲取數出來:在Python中提取數據的更好方法

time1=timeList[0] 
time2=time1[0] 
time3=(time2.contents[0]) 
(parts) = time3.split(":") 

有沒有更好的方法以更少的步驟來做到這一點?還有哪些資源可以幫助我未來?或者,這是你通過編碼學習然後尋求幫助的東西之一嗎?

+0

第一個問題可能會得到答案。其他人要求參考工具,他們不允許。 – Alfabravo

+0

所以你只是想要數字出來?你的文字格式會改變多少? –

+0

「'[['02:29']]'」是什麼意思?爲什麼'.contents'?什麼類型是'timeList'? – deceze

回答

0

Itertool始終可用:

Itertools

你可以鏈接你的名單,因爲它總是在相同的格式:

import itertools 
time1 = list(itertools.chain(*timeList))[0].split(":")[0] 

該解決方案速度非常快,工作非常流暢。理解有點複雜,但它使工作非常有效。

  • 注意:它也可以與子陣列的多層次,不管你有1,2或3級

更新

由於你表明你想要將其轉換以原始秒數答案是:

time1 = list(itertools.chain(*timeList))[0].split(":") 
seconds_total = (time1[0] * 60) + time1[1] 
+0

對不起,沒有格式化這個權利:我的目標是獲得[[02:20]]到02:20,然後我可以運行該數字對代碼將其從min:sec轉換爲普通秒。然後我可以將所有的原始秒數加起來,稍後重新轉換。 HTH? – Dave

+0

這很容易,只需要拆分時間1,你可以加起來time1 [0] * 60 + time1 [1] –

+0

Max:感謝您的更新。這樣可行!! – Dave

1

這是列表中只有一個項目的列表嗎?

然後,你可以達到同樣具有:

test = [['02:29']] 
parts = test[0][0].split(':') 
print parts # result: ['02', '29'] 

但是我'不知道,如果我得到你的權利

相關問題