Python 拆分元组数组,同时将两个元组都保留为数组
我有一个元组数组,我希望将元组中的元素分开,同时将元组的两侧保留在一个单独的数组中 我是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,
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]]
特别是如果你不需要结果作为列表这会生成元组,但问题要求列表。这会生成元组,但问题要求列表。