簡體   English   中英

根據python中兩個單獨列表的索引組合兩個列表的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM