作者AmigoSafin ()
看板Python
标题[问题] partition()去除delimiter及後char一问
时间Tue Oct 8 18:41:06 2019
大家好,
小鲁python新手
想请教一个最近自己卡住的问题:
我有一个string object长得如下:
Mary,Watson
Jordon, Clinton
Sam, Peterson
逗号前的是first name
後为last name
我希望把他们分为:
first name
Mary
Jordon
Sam
last name
Watson
Clinton
Peterson
我试着用partition(',')
例如我的string档名为name
我就用name.partition(',')
但output只给我Mary
想请教板上高手
我要怎麽做比较合适呢?
谢谢大家!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 74.69.83.135 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1570531269.A.7D4.html
1F:→ s860134: 把你的程式码贴出来 你的叙述不符合执行结果 10/08 19:31
2F:→ s860134: name.partition(',') 输出会是 tuple 不是string 10/08 19:31
我的原始档案是读入一个text档案
长得像:
Mary, Waltons W
Linda, Wu
大概是这样 以上为虚构名字 不一定每一位都有middle name
所以读入後 是一个string
我设定他为name
然後我使用:
entries = re.split("\n+", name)
entries成为一个list 长相如下:
['Mary, Waltons W', 'Linda, Wu',]
後面还有很多笔资料
因为我想要得到first_name一个list
middle_name一个list
last_name一个list
所以我想要把他们从delimiter=,切隔开
biglist=entries
smallerlist=[l.split(', ')for l in ', '.join(biglist).split(', ')]
print(smallerlist)
就是我想要的:
['Mary, Waltons W']['Linda, Wu']
但我现在想要做到:
first_name = Mary
Last_and_middle = Waltons W (然後後续再切割一次)
我用的是
for item in smallerlist:
result = [word for line in item for word in line.split()]
会得到:
['Mary,Waltons', 'W']
['Linda, Wu']
就是帮我把first_name, middle_name 和Last_name用comma隔开
但我接下来不是很确定要怎麽将三者分开成三个list
而且有些人没有middle name要放' '
小鲁很新手 不好意思问了基本的问题
希望有做过类似提目的大大帮忙解惑
谢谢了~感恩!
※ 编辑: AmigoSafin (74.69.83.135 美国), 10/09/2019 08:29:37
3F:→ darama: 应该先用逗号切出first name 10/11 15:05
4F:→ darama: 剩下的用space切,如果切完的list长度是二就是有middle na 10/11 15:08
5F:→ darama: me,然後再补空字串给没有middle name 的case 10/11 15:08