[問題] partition()去除delimiter及後char一問

看板Python作者時間4年前 (2019/10/08 18:41), 4年前編輯推噓0(005)
留言5則, 2人參與, 4年前最新討論串1/2 (看更多)
大家好, 小魯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://www.ptt.cc/bbs/Python/M.1570531269.A.7D4.html

10/08 19:31, 4年前 , 1F
把你的程式碼貼出來 你的敘述不符合執行結果
10/08 19:31, 1F

10/08 19:31, 4年前 , 2F
name.partition(',') 輸出會是 tuple 不是string
10/08 19:31, 2F
我的原始檔案是讀入一個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

10/11 15:05, 4年前 , 3F
應該先用逗號切出first name
10/11 15:05, 3F

10/11 15:08, 4年前 , 4F
剩下的用space切,如果切完的list長度是二就是有middle na
10/11 15:08, 4F

10/11 15:08, 4年前 , 5F
me,然後再補空字串給沒有middle name 的case
10/11 15:08, 5F
文章代碼(AID): #1Td6V5VK (Python)
文章代碼(AID): #1Td6V5VK (Python)