一個表(或列表)我有一個陣列分裂基於列蟒
arr = [['a', 'b', 'a'], [1, 2, 3]
我需要這基於所述第一數組的值即基於「A」或「B」被spliited。所以預期的產出是
arr_out_a = [1, 3]
arr_out_b = [2]
我該怎麼做?
請幫我糾正的問題,如果這樣我用的話就像列表和數組可能會造成混亂
一個表(或列表)我有一個陣列分裂基於列蟒
arr = [['a', 'b', 'a'], [1, 2, 3]
我需要這基於所述第一數組的值即基於「A」或「B」被spliited。所以預期的產出是
arr_out_a = [1, 3]
arr_out_b = [2]
我該怎麼做?
請幫我糾正的問題,如果這樣我用的話就像列表和數組可能會造成混亂
使用collections.defaultdict()
:
In [82]: arr = [['a', 'b', 'a'], [1, 2, 3]]
In [83]: from collections import defaultdict
In [84]: d = defaultdict(list)
In [85]: for i, j in zip(*arr):
....: d[i].append(j)
....:
In [86]: d
Out[86]: defaultdict(<class 'list'>, {'b': [2], 'a': [1, 3]})
如果數組是arr = [['x','y','z'],['a','b','a'],[1,2,3]],我將如何分割在'a'或'b'上。預期的輸出是arr_out_a = [['x',1],['z',3]和arr_out_b = [['y',2] –
感謝您的快速回答。如果數組是arr = [['x','y','z'],['a','b','a'],[1,2,3]],我將如何分割'a'或'b'。預期的輸出是arr_out_a = [['x',1],['z',3]和arr_out_b = [['y',2]。請幫助一般方式作爲第一個答案,在我的程序中,我想根據一些字符串而不是a和b來分割,並且這樣的字符串的數量是未知的(即由組合確定 –
嗨,我可以試試這個和 導入運算符 arr = [['x','y','z'],['a','b','a'],[1,2,3]] 集合導入defaultdict d = defaultdict(列表) 對於i,J,K在拉鍊(* ARR): d [j]的.append([I,K]) 打印d 結果: defaultdict (
基本上只是追加他們有條件預定義的空列表:
arr_out_a = []
arr_out_b = []
for char, num in zip(*arr):
if char == 'a':
arr_out_a.append(num)
else:
arr_out_b.append(num)
,或者如果你不喜歡zip
:
arr_out_a = []
arr_out_b = []
for idx in range(len(arr[0])):
if arr[0][idx] == 'a':
arr_out_a.append(arr[1][idx])
else:
arr_out_b.append(arr[1][idx])
首先嚐試編輯您的問題,以便更清楚您需要什麼幫助。第二,向我們展示你已經嘗試過的東西。 – geostocker