2013-07-12 34 views
0

從這兩個列表:要創建兩個變量一個新的列表,依次匹配的項目

FCC = ["A3","A4","A5","A3"] 

stNm = ["1st", "2nd", "3rd", "2nd"] 

我想製作一個合併的列表如下:

list1 = [("A3, "1st"), ("A4", "2nd"),("A5","3rd"),("A3","2nd")] 

我已經開始用這個:

f = '' 

n = '' 

list1 = [ ] 

for f in FCC: 

    for n in stNm: 

     list1.append((f,n)) 

print (list1) 

,但它給了我所有可能的組合在列表1。我怎樣才能得到我想要的?我認爲問題的一部分可能與循環,但不知道如何解決。我試圖創建一個字典,但我需要保留重複鍵。

回答

2

使用zip功能。

拉鍊(FCC,stNm)

+0

謝謝!現在我想要做的就是使用條件語句,如果在對應於不同鍵的元組中存在重複值。 – kflaw

+0

您是否想要查找對(x1,y1)和(x2,y2),其中y1 == y2和x1!= x2? (例如,list1 [1]和list1 [3]?) –

+0

是的,所以我需要弄清楚如何迭代對 – kflaw

0

對於第二個問題,你可以得到重複的項目列表,像這樣:

duplicated_items = [item for item in stNm if stNm.count(item)>1] 

,然後就可以得到對他們屬於像現在這樣:

duplist = [pair for pair in zip(FCC, stNm) if pair[1] in dups] 

注:duplicated_items列表可以uniqued,像往常一樣,通過使之成爲一個集()。這對於小型列表來說似乎不是必要的,對於大型列表可能是有用的。

相關問題