Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 拆分元组数组,同时将两个元组都保留为数组_Python_Arrays_Tuples - Fatal编程技术网

Python 拆分元组数组,同时将两个元组都保留为数组

Python 拆分元组数组,同时将两个元组都保留为数组,python,arrays,tuples,Python,Arrays,Tuples,我有一个元组数组,我希望将元组中的元素分开,同时将元组的两侧保留在一个单独的数组中 我是Python新手,所以我不知道这个问题是否有明显的解决方案 arr = [(1,4), (2,4)] '''some code''' arr1 = [1,2] arr2 = [4,4] 您可以为此使用: arr1 = [x[0] for x in arr] arr2 = [x[1] for x in arr] 基本上,它的作用是,对于arr中的每个元组x,它将第一个元组元素(x[0])添加到arr1,

我有一个元组数组,我希望将元组中的元素分开,同时将元组的两侧保留在一个单独的数组中

我是Python新手,所以我不知道这个问题是否有明显的解决方案

arr = [(1,4), (2,4)]

'''some code'''
arr1 = [1,2]
arr2 = [4,4]

您可以为此使用:

arr1 = [x[0] for x in arr]
arr2 = [x[1] for x in arr]
基本上,它的作用是,对于
arr
中的每个元组
x
,它将第一个元组元素(
x[0]
)添加到
arr1
,类似地,对于
arr2
,您可以使用它:

arr1 = [x[0] for x in arr]
arr2 = [x[1] for x in arr]

基本上,对于
arr
中的每个元组
x
,它会将第一个元组元素(
x[0]
)添加到
arr1
,类似地,对于
arr2
,在元组数组上进行迭代非常方便,如下所示:

arr1=[]
arr2=[]
对于arr中的x,y:
arr1.追加(x)
arr2.追加(y)

arr
的每个元素是一个包含两个元素的元组,因此这会将元组分解为变量
x
y

,这样可以方便地在元组数组上迭代:

arr1=[]
arr2=[]
对于arr中的x,y:
arr1.追加(x)
arr2.追加(y)

arr
的每个元素是一个包含两个元素的元组,因此这会将元组分解为变量
x
y

一种方法是使用一对列表理解

如果元组中有两个以上的项,这种方法会更好,因为可以在循环中进行。列表理解一开始看起来很混乱,但它们非常强大

另一种方法是一个好的,老式的for循环


一种方法是使用一对列表理解

如果元组中有两个以上的项,这种方法会更好,因为可以在循环中进行。列表理解一开始看起来很混乱,但它们非常强大

另一种方法是一个好的,老式的for循环


另一个解决方案是使用函数
zip

arr = [(1,4), (2,4)]
res = list(zip(*arr))  #  res = [(1, 2), (4, 4)]
arr1 = res[0] # arr1 = (1, 2)
arr2 = res[1] # arr2 = (4,4)

当列表包含更多元素时,这可能比经典的for循环更方便。

另一种解决方案是使用函数
zip

arr = [(1,4), (2,4)]
res = list(zip(*arr))  #  res = [(1, 2), (4, 4)]
arr1 = res[0] # arr1 = (1, 2)
arr2 = res[1] # arr2 = (4,4)

当列表包含更多元素时,这可能比经典的for循环更方便。

使用zip非常好,带有扩展运算符*:

arr = [(1, 4), (2, 4)]

a = [*zip(*arr)]
b = [list(i) for i in zip(*arr)]

print(a)
# [(1, 2), (4, 4)]

print(b)
# [[1, 2], [4, 4]]

特别是如果您不需要结果作为列表

使用zip非常好,使用扩展操作符*:

arr = [(1, 4), (2, 4)]

a = [*zip(*arr)]
b = [list(i) for i in zip(*arr)]

print(a)
# [(1, 2), (4, 4)]

print(b)
# [[1, 2], [4, 4]]

特别是如果你不需要结果作为列表

这会生成元组,但问题要求列表。这会生成元组,但问题要求列表。