看板 Python 關於我們 聯絡資訊
不好意思 自己並非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
Yshuan: 寫for-in去iterate或用list comprehension 06/01 16:52
Yshuan: new_names = [s.partition('.')[0] for s in names] 06/01 16:53
pmove: 如後面一定是.txt結尾,可以從-5位子開始抓 06/01 17:00
aidansky0989: 寫一個正則 06/01 17:33
OrzOGC: regex 06/01 20:14
OrzOGC: 有規律的話同2f用slice [0:-5] 06/01 20:15
OrzOGC: -4才對...XD 06/01 20:16
cuteSquirrel: https://onlinegdb.com/S1X77_znL 供您參考 06/01 20:23
alvinlin: list(map(lambda x: os.path.splitext(x)[0], names)) 06/01 21:52
alvinlin: names = list(map(lambda x: os.path.splitext(x)[0], 06/01 21:53
alvinlin: names)) 06/01 21:53
alvinlin: 用splitext比較準確 06/01 21:56
alvinlin: 或 names = [ os.path.splitext(i)[0] for i in names ] 06/01 22:02
alvinlin: 也一樣 06/01 22:02
eco100: 感謝! 06/02 09:26
s860134: 印象 split ext實作也是split('.')[:-1] 06/02 09:32
alvinlin: 但是檔名裡可以有多個'.'所以會有問題吧 06/02 10:33