2010-11-06 41 views
2

發現如果我有一個嵌套列表看起來像這樣的字符串列表:的Python如何遍歷List和比較中

bigstringlist = [['rob', 'bob', 'sam', 'angie'], ['jim', 'angie', 'tom', 'sam'], ['sam', 'mary', 'angie', 'sally']]

如何通過這個列表進行迭代,名稱的列表出現在所有嵌套列表中?即:

finallist = ['sam', 'angie'] 

通過將此嵌套列表類型化爲一組,可以更好地實現嗎?

回答

11
reduce(set.intersection, map(set , bigstringlist)) 
+0

這似乎並沒有做任何事情,的確與Python 2.6這項工作? – 2010-11-06 00:37:20

+0

@Luminous_Path:你是什麼意思__似乎什麼都不做?與您的數據此代碼將返回__set(['angie','sam'])__,您可以轉換爲列表... ps:「它工作在2.6」 – mouad 2010-11-06 00:40:25

+0

Nevermind,一定是某種語法錯誤我的部分,謝謝! – 2010-11-06 00:42:40

0

上奇異的解決方案的變化,也許有點快:

bigstringiter = iter(bigstringlist) 
reduce(set.intersection, bigstringiter, set(next(bigstringiter)))