[問題] list中每個字串截取的問題

看板Python作者 ( )時間3年前 (2020/06/01 16:40), 編輯推噓5(5012)
留言17則, 8人參與, 3年前最新討論串1/1
不好意思 自己並非python的使用者 但因為要改python的程式 所以問的問題有點基本 例如我有一個list names = ['A12.txt', 'B34.txt', 'C45.txt'] 我要變成 names = ['A12', 'B34', 'C45'] 我試著用 names.partition('.')[0] 但partition似乎不能用在list上 有什麼快速的方式呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.32.9 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1591000831.A.830.html

06/01 16:52, 3年前 , 1F
寫for-in去iterate或用list comprehension
06/01 16:52, 1F

06/01 16:53, 3年前 , 2F
new_names = [s.partition('.')[0] for s in names]
06/01 16:53, 2F

06/01 17:00, 3年前 , 3F
如後面一定是.txt結尾,可以從-5位子開始抓
06/01 17:00, 3F

06/01 17:33, 3年前 , 4F
寫一個正則
06/01 17:33, 4F

06/01 20:14, 3年前 , 5F
regex
06/01 20:14, 5F

06/01 20:15, 3年前 , 6F
有規律的話同2f用slice [0:-5]
06/01 20:15, 6F

06/01 20:16, 3年前 , 7F
-4才對...XD
06/01 20:16, 7F

06/01 20:23, 3年前 , 8F
06/01 20:23, 8F

06/01 21:52, 3年前 , 9F
list(map(lambda x: os.path.splitext(x)[0], names))
06/01 21:52, 9F

06/01 21:53, 3年前 , 10F
names = list(map(lambda x: os.path.splitext(x)[0],
06/01 21:53, 10F

06/01 21:53, 3年前 , 11F
names))
06/01 21:53, 11F

06/01 21:56, 3年前 , 12F
用splitext比較準確
06/01 21:56, 12F

06/01 22:02, 3年前 , 13F
或 names = [ os.path.splitext(i)[0] for i in names ]
06/01 22:02, 13F

06/01 22:02, 3年前 , 14F
也一樣
06/01 22:02, 14F

06/02 09:26, 3年前 , 15F
感謝!
06/02 09:26, 15F

06/02 09:32, 3年前 , 16F
印象 split ext實作也是split('.')[:-1]
06/02 09:32, 16F

06/02 10:33, 3年前 , 17F
但是檔名裡可以有多個'.'所以會有問題吧
06/02 10:33, 17F
文章代碼(AID): #1UrBx_Wm (Python)
文章代碼(AID): #1UrBx_Wm (Python)