2013-03-29 178 views
0

我有两个运动员名单。一种是结构简单:开关姓氏,名字姓氏里面名单

['Lastname, Firstname', 'Lastname2, Firstname2'..] 

二是结构化的列表的列表:

[['Firstname Lastname', 'Team', 'Position', 'Ranking']...] 

我最终想要搜索的第二列表的内容和拉的信息,如果有从匹配的名称第一个列表。

为了简化,我需要将'姓','名'换成'名字姓'以与列表2的格式相匹配。

任何帮助将是伟大的。谢谢!

+0

我不清楚 - 你想知道如何从一个列表中获取信息的基础上,或只是改变格式? –

+0

我只是想改变格式来匹配。想象一下,改变第一个列表的格式会更简单一些,因为它只是一个简单的列表,只包含字符串(名称),而另一个列表是列表的列表。下面的答案解决了这个问题。谢谢! –

回答

6

您可以在名字与名单交换顺序:

​​3210

的解释:这是一个列表理解的是做一些事情,以每个项目。以下是几个中间版本和他们将返回的内容:

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

太棒了!像魅力一样工作。请简要解释发生了什么?谢谢! –

+2

'n.split(“,”)[:: - 1]'更清楚地写成'reversed(n.split(“,”))' –

+0

@timroberts:当然 - 请参阅编辑 –