[问题] list中每个字串截取的问题

楼主: eco100 ( )   2020-06-01 16:40:29
不好意思 自己并非python的使用者 但因为要改python的程式
所以问的问题有点基本
例如我有一个list
names = ['A12.txt', 'B34.txt', 'C45.txt']
我要变成
names = ['A12', 'B34', 'C45']
我试着用 names.partition('.')[0] 但partition似乎不能用在list上
有什么快速的方式呢? 谢谢!
作者: Yshuan (倚絃)   2020-06-01 16:52:00
写for-in去iterate或用list comprehensionnew_names = [s.partition('.')[0] for s in names]
作者: pmove (金疾柠檬)   2020-06-01 17:00:00
如后面一定是.txt结尾,可以从-5位子开始抓
作者: aidansky0989 (alta)   2020-06-01 17:33:00
写一个正则
作者: OrzOGC (洞八达人.拖哨天王)   2020-06-01 20:14:00
regex有规律的话同2f用slice [0:-5]-4才对...XD
作者: cuteSquirrel (松鼠)   2020-06-01 20:23:00
作者: alvinlin (林矜业)   2020-06-01 21:52:00
list(map(lambda x: os.path.splitext(x)[0], names))names = list(map(lambda x: os.path.splitext(x)[0],names))用splitext比较准确或 names = [ os.path.splitext(i)[0] for i in names ]也一样
楼主: eco100 ( )   2020-06-02 09:26:00
感谢!
作者: s860134 (s860134)   2020-06-02 09:32:00
印象 split ext实作也是split('.')[:-1]
作者: alvinlin (林矜业)   2020-06-02 10:33:00
但是档名里可以有多个'.'所以会有问题吧

Links booklink

Contact Us: admin [ a t ] ucptt.com