Python并翻转姓氏,名字的顺序

use*_*888 2 python string split

我有一个smith, bob;jones, bill;doe, john来自CSV文件的字符串.我想提取名称并将姓氏和名字的顺序翻转为名字和姓氏.

我尝试了switch-lastname-firstname中显示的示例,但该示例对我不起作用.

我也尝试过:

namelist = ['smith, bob;jones, bill;doe, john']
n2=''
for n in namelist:
    name = n.partition(',')
    fn = name[2]
    ln = name[0]
    n2 += fn + ' ' + ln + ';'
Run Code Online (Sandbox Code Playgroud)

但是 - 如果只有一个名称而不是名称列表,它不会将名称分开但工作正常...我该怎么做才能纠正这个问题?

Han*_*rén 6

使用该split功能非常简单.

s = 'smith, bob;jones, bill;doe, john'
for lname, fname in [q.split(",") for q in s.split(";")]:
    print fname, lname
Run Code Online (Sandbox Code Playgroud)

这将输出

bob smith
bill jones
john doe
Run Code Online (Sandbox Code Playgroud)