我得到一個看起來像這樣的串列:(小時)
串列 = ['02:00', '01:00', '03:00', '00:00', '04:00', '05:00', '06:00', '23:00' , '24:00', '07:00', '22:00', '14:00', '13:00', '15:00', '21:00', '08:00', ' 16:00'、'12:00'、'20:00'、'17:00'、'11:00'、'18:00'、'09:00'、'10:00']
在我的函式結束時,當我整理串列時,它看起來像這樣:
list = nsmallest(HoursPerDay, my_dict, key=my_dict.get)
return [i.strip(':0') for i in list]
它給了我這個:list = ['2', '1', '3', '', '4', '5', '6', '23', '24', '7', '22 ','14','13','15','21','8','16','12','2','17','11','18','9', '1']
每小時都可以正常作業,除了 20:00 它變成 2 而不是 20 并使 00:00 變成零。我該如何解決這個問題?我也嘗試過一些正則運算式生成器,但我無法正確處理。
uj5u.com熱心網友回復:
而不是剝離你應該分裂。像這樣的東西:
inlist = ['02:00', '01:00', '03:00', '00:00', '04:00', '05:00', '06:00', '23:00', '24:00', '07:00', '22:00', '14:00', '13:00', '15:00', '21:00', '08:00', '16:00', '12:00', '20:00', '17:00', '11:00', '18:00', '09:00', '10:00']
outlist = [f"{int(e.split(':')[0])}" for e in inlist]
print(outlist)
輸出:
['2', '1', '3', '0', '4', '5', '6', '23', '24', '7', '22', '14', '13', '15', '21', '8', '16', '12', '20', '17', '11', '18', '9', '10']
筆記:
轉換為 int 并回傳到 string 有效地洗掉了任何前導零
uj5u.com熱心網友回復:
strippython檔案中給出的默認行為是
回傳洗掉了前導和尾隨字符的字串的副本。chars 引數是一個字串,指定要洗掉的字符集。如果省略或無,chars 引數默認洗掉空格。chars 引數不是前綴或后綴;相反,它的值的所有組合都被剝離。
'00010:010:000'.strip(':0') # it will remove all available combination of ':0'
# you will get '10:01'
現在針對您的具體要求
[i.rstrip('0').rstrip(':') for i in list]
如果要在洗掉第一個 0 后從右側保留零,請使用
import re
list = ['02:00', '01:00', '03:00', '00:00', '04:00', '05:00', '06:00', '23:00', '24:00', '07:00', '22:00', '14:00', '13:00', '15:00', '21:00', '08:00', '16:00', '12:00', '20:00', '17:00', '11:00', '18:00', '09:00', '10:00']
[re.sub(r'0 (. )', r'\1', i.rstrip('0').rstrip(':')) for i in list]
# ['2', '1', '3', '0', '4', '5', '6', '23', '24', '7', '22', '14', '13', '15', '21', '8', '16', '12', '20', '17', '11', '18', '9', '10']
uj5u.com熱心網友回復:
如果我們使用以下代碼段,就可以達到您想要的結果。
[(i.removesuffix(':00')).lstrip('0') or '0' for i in list]
- 洗掉 :00 后綴。
- 洗掉前導零。[
lstrip] - “00:00”的特殊情況。
使用正則運算式的另一個替代解決方案:
[str(int(re.sub("\:00$", "", i))) for i in list]
- 洗掉 :00 后綴。[
re.sub("\:00$", "", i] - 通過轉換為 int 來洗掉前導零。
- 根據需要將每個元素轉換為字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512084.html
上一篇:我無法使用ListWheelScrollView.useDelegate()獲取Stateful小部件的狀態以在ElevatedButton上顯示更新的月份
