我有一個字符串的兩個嵌套表:Python中加入兩個嵌套表
listA = [["SomeString1", "A", "1"],
["SomeString2", "A", "2"],
["SomeString3", "B", "1"],
["SomeString4", "B", "2"]]
listB = [["OtherString1", "A", "1"],
["OtherString2", "A", "2"],
["OtherString3", "B", "1"],
["OtherString4", "B", "2"]]
對於A中的每一個名單,我想找到B中的列表,其中(sublistB[1] == sublistA[1]) and (sublistB[2] == sublistA[2])
(零索引)。
然後我想將「B」子列表的第一個條目添加到「A」子列表,使得最終的輸出將是:
joined = [["SomeString1", "A", "1", "OtherString1"],
["SomeString2", "A", "2", "OtherString2"],
["SomeString3", "B", "1", "OtherString3"],
["SomeString4", "B", "2", "OtherString4"]]
甚至更好,插入項位置1:
joined = [["SomeString1", "OtherString1", "A", "1"],
["SomeString2", "OtherString2", "A", "2"],
["SomeString3", "OtherString3", "B", "1"],
["SomeString4", "OtherString4", "B", "2"]]
在python中這樣做的最好方法是什麼?我有一個實現,但有3個嵌套循環,它需要一些時間。 我有一種感覺,map
,filter
和/或reduce
可能有幫助,但不知道如何實現?
請注意,列表不一定在我的示例中整齊排列。
此外,這是非常重要的 - 列表可能不是相同的長度,也不保證每個子列表都包含匹配。如果找不到匹配,我想追加無。
命令是否有用?例如,字典可能是一個更好的數據結構,使用'(「A」,「1」)作爲關鍵字。 – 2014-11-03 16:57:27
順序無關緊要。如果輸出結果是一個正確的字典,但輸入是列表的兩個列表 – jramm 2014-11-03 17:01:12