看板 Python 關於我們 聯絡資訊
大家好, 小魯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
s860134: 把你的程式碼貼出來 你的敘述不符合執行結果 10/08 19:31
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
darama: 應該先用逗號切出first name 10/11 15:05
darama: 剩下的用space切,如果切完的list長度是二就是有middle na 10/11 15:08
darama: me,然後再補空字串給沒有middle name 的case 10/11 15:08