[英]Combining elements of two lists based on the indexes of two separate lists in python
我在 python 中有四個列表,我們稱它們為 A、Ai、B 和 Bi
A 和 B 是數字列表
Ai 和 Bi 是字符串列表,其在列表中的位置對應於列表中相同位置的具有相同字母的數字
例如。
A = [3, 4, 2]
B = [2, 7, 6]
Ai = ["Joe", "John", "Jim"]
Bi = ["John", "Jim", "Joe"]
(例如,Joe 與 3 和 6(分別在 A 和 B 中)相關聯)
例如,我需要一種方法來組合喬的號碼,並且有辦法知道該組合是喬的號碼。
理想情況下,我會有一個排序列表,每個列表包含 Ai 或 Bi 中每個字符串的 A 和 B 的組合數字(它們將是相同的字符串),以及第二個包含字符串的列表,使得每個字符串匹配數字(就指數而言)。
我曾嘗試為 A 和 B 創建一個關聯列表(將字符串與數字相關聯),並以某種方式組合它們但失敗了。
out = pd.concat([pd.Series(A, index=Ai), pd.Series(B, index=Bi)], keys=['A', 'B'], axis=1)
out
A B
Joe 3 6
John 4 2
Jim 2 7
按照合並這四個列表的方式,首先創建兩個字典,最后合並它們。
代碼:
dic=dict(zip(Ai, [[i] for i in A]))
{dic[k].append(dict(zip(Bi, B))[k]) for k,v in dic.items()}
dic
輸出:
{'Joe': [3, 6], 'John': [4, 2], 'Jim': [2, 7]}
我想嘗試提供幫助,但由於我還是新手,所以我正在使用 javascript。 ^_^
A = [3, 4, 2]; B = [2, 7, 6]; Ai = ["Joe", "John", "Jim"]; Bi = ["John", "Jim", "Joe"]; for (let i = 0; i < Ai.length; i++) { for (let j = 0; j < Bi.length; j++) { if (Ai[i] == Bi[j]) { let result = Ai[i] + ', (' + A[i] + ', ' + B[j] + '), ' + (A[i] + B[j]); console.log(result); } } }
結果就像
Joe, (3, 6), 9 John, (4, 2), 6 Jim, (2, 7), 9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.