2013-03-29 155 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:當然 - 請參閱編輯 –