一个表(或列表)我有一个阵列分裂基于列蟒
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