Python映射数组

Python映射数组,python,arrays,mapping,Python,Arrays,Mapping,我有一个数组pat=[1,2,3,4,5,6,7]和第二个数组count=[5,6,7,8,9,10,11]。有没有一种方法不使用字典就可以得到以下数组newarray=[[1,5],[2,6],[3,7],[4,8],[5,9],[6,10],[7,11]?你只需压缩列表即可 >>> pat=[1,2,3,4,5,6,7] >>> count=[5,6,7,8,9,10,11] >>> list(zip(pat,count)) [(1, 5

我有一个数组
pat=[1,2,3,4,5,6,7]
和第二个数组
count=[5,6,7,8,9,10,11]
。有没有一种方法不使用字典就可以得到以下数组
newarray=[[1,5],[2,6],[3,7],[4,8],[5,9],[6,10],[7,11]

你只需
压缩列表即可

>>> pat=[1,2,3,4,5,6,7]
>>> count=[5,6,7,8,9,10,11]
>>> list(zip(pat,count))
[(1, 5), (2, 6), (3, 7), (4, 8), (5, 9), (6, 10), (7, 11)]
或者如果你想要列表而不是元组

>>> [[i,j] for i,j in zip(pat,count)]
[[1, 5], [2, 6], [3, 7], [4, 8], [5, 9], [6, 10], [7, 11]]

您只需
zip
列表即可

>>> pat=[1,2,3,4,5,6,7]
>>> count=[5,6,7,8,9,10,11]
>>> list(zip(pat,count))
[(1, 5), (2, 6), (3, 7), (4, 8), (5, 9), (6, 10), (7, 11)]
或者如果你想要列表而不是元组

>>> [[i,j] for i,j in zip(pat,count)]
[[1, 5], [2, 6], [3, 7], [4, 8], [5, 9], [6, 10], [7, 11]]

如果希望内部元素是列表,可以使用-

>>> pat=[1,2,3,4,5,6,7]
>>> count=[5,6,7,8,9,10,11]
>>> newarray = list(map(list,zip(pat,count)))
>>> newarray
[[1, 5], [2, 6], [3, 7], [4, 8], [5, 9], [6, 10], [7, 11]]

这首先将两个列表进行压缩,合并每个列表的第i个元素,然后使用
map
函数将它们转换为列表,然后将完整的外部映射对象(我们从map函数获得)转换为list

如果希望内部元素成为列表,可以使用-

>>> pat=[1,2,3,4,5,6,7]
>>> count=[5,6,7,8,9,10,11]
>>> newarray = list(map(list,zip(pat,count)))
>>> newarray
[[1, 5], [2, 6], [3, 7], [4, 8], [5, 9], [6, 10], [7, 11]]

这首先将两个列表压缩,组合每个列表的第i个元素,然后使用
map
函数将它们转换为列表,然后将完整的外部映射对象(我们从map函数获得)转换为list

,而不使用
zip
,您可以执行以下操作:

def map_lists(l1, l2):
    merged_list = []
    for i in range(len(l1)):
        merged_list.append([l1[i], l2[i]])
    return merged_list
或者,使用列表理解代替:

def map_lists(l1, l2):
    return [[l1[i], l2[i]] for i in range(len(l1))]

不使用
zip
,您可以执行以下操作:

def map_lists(l1, l2):
    merged_list = []
    for i in range(len(l1)):
        merged_list.append([l1[i], l2[i]])
    return merged_list
或者,使用列表理解代替:

def map_lists(l1, l2):
    return [[l1[i], l2[i]] for i in range(len(l1))]