将姓氏,姓名切换为列表中的名字姓氏

tim*_*rts 1 python python-2.7

我有两个体育运动员名单.一个结构简单:

['Lastname, Firstname', 'Lastname2, Firstname2'..]
Run Code Online (Sandbox Code Playgroud)

第二个是结构列表:

[['Firstname Lastname', 'Team', 'Position', 'Ranking']...]
Run Code Online (Sandbox Code Playgroud)

我最终想要搜索第二个列表的内容,并在第一个列表中有匹配的名称时提取信息.

我需要将'Lastname,Firstname'交换为'Firstname Lastname'以匹配列表2的格式以简化.

任何帮助都会很棒.谢谢!

Dav*_*son 6

您可以在名称列表中交换订单:

[" ".join(n.split(", ")[::-1]) for n in namelist]
Run Code Online (Sandbox Code Playgroud)

解释:这是一个列表理解,可以对每个项目执行某些操作.以下是一些中间版本以及它们将返回的内容:

namelist = ["Robinson, David", "Roberts, Tim"]
# split each item into a list, around the commas:
[n.split(", ") for n in namelist]
# [['Robinson', 'David'], ['Roberts', 'Tim']]

# reverse the split up list:
[n.split(", ")[::-1] for n in namelist]
# [['David', 'Robinson'], ['Tim', 'Roberts']]

# join it back together with a space:
[" ".join(n.split(", ")[::-1]) for n in namelist]
# ['David Robinson', 'Tim Roberts']
Run Code Online (Sandbox Code Playgroud)

  • `n.split(",")[:: - 1]`更清楚地写成`reverse(n.split(","))` (2认同)