Python 在列表内将Lastname、Firstname切换为Firstname Lastname

Python 在列表内将Lastname、Firstname切换为Firstname Lastname,python,python-2.7,Python,Python 2.7,我有两份运动员名单。一种是结构简单: ['Lastname, Firstname', 'Lastname2, Firstname2'..] 第二个列表是结构化列表列表: [['Firstname Lastname', 'Team', 'Position', 'Ranking']...] 我最终希望搜索第二个列表的内容,如果第一个列表中有匹配的名称,则提取信息 我需要将“Lastname,Firstname”替换为“Firstname Lastname”,以匹配列表2的格式以简化 任何帮助都会

我有两份运动员名单。一种是结构简单:

['Lastname, Firstname', 'Lastname2, Firstname2'..]
第二个列表是结构化列表列表:

[['Firstname Lastname', 'Team', 'Position', 'Ranking']...]
我最终希望搜索第二个列表的内容,如果第一个列表中有匹配的名称,则提取信息

我需要将“Lastname,Firstname”替换为“Firstname Lastname”,以匹配列表2的格式以简化


任何帮助都会很好。谢谢

您可以将名称列表中的顺序替换为:

[" ".join(n.split(", ")[::-1]) for n in namelist]

说明:这是一个列表理解,对每个项目都有作用。以下是一些中间版本以及它们将返回的内容:

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']

我不清楚-你想知道如何从一个列表中根据另一个列表提取信息,还是只是更改格式?我只是想更改格式以匹配。我想更改第一个列表的格式会更简单,因为它是一个只包含字符串(名称)的简单列表,而另一个列表是列表列表。你下面的答案解决了这个问题。谢谢令人惊叹的!工作得很有魅力。想简单解释一下发生了什么吗?谢谢
n.split(“,”[::-1]
更清楚地写为
reversed(n.split(“,”)
要使逗号后的空格可选,并允许在单个单词前后使用空格,我会对名称列表中的n使用
[“”.join(n.replace(“,”).split()[:-1])