作者eco100 ( )
看板Python
標題[問題] list中每個字串截取的問題
時間Mon Jun 1 16:40:29 2020
不好意思 自己並非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://webptt.com/m.aspx?n=bbs/Python/M.1591000831.A.830.html
1F:推 Yshuan: 寫for-in去iterate或用list comprehension 06/01 16:52
2F:→ Yshuan: new_names = [s.partition('.')[0] for s in names] 06/01 16:53
3F:推 pmove: 如後面一定是.txt結尾,可以從-5位子開始抓 06/01 17:00
4F:推 aidansky0989: 寫一個正則 06/01 17:33
5F:→ OrzOGC: regex 06/01 20:14
6F:→ OrzOGC: 有規律的話同2f用slice [0:-5] 06/01 20:15
7F:→ OrzOGC: -4才對...XD 06/01 20:16
9F:→ alvinlin: list(map(lambda x: os.path.splitext(x)[0], names)) 06/01 21:52
10F:→ alvinlin: names = list(map(lambda x: os.path.splitext(x)[0], 06/01 21:53
11F:→ alvinlin: names)) 06/01 21:53
12F:→ alvinlin: 用splitext比較準確 06/01 21:56
13F:→ alvinlin: 或 names = [ os.path.splitext(i)[0] for i in names ] 06/01 22:02
14F:→ alvinlin: 也一樣 06/01 22:02
15F:→ eco100: 感謝! 06/02 09:26
16F:推 s860134: 印象 split ext實作也是split('.')[:-1] 06/02 09:32
17F:→ alvinlin: 但是檔名裡可以有多個'.'所以會有問題吧 06/02 10:33