作者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/cn.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