📜  Python|解包嵌套元组

📅  最后修改于: 2022-05-13 01:54:52.233000             🧑  作者: Mango

Python|解包嵌套元组

有时,在使用Python元组列表时,我们可能会遇到需要解包打包元组的问题。这可以在 Web 开发中具有可能的应用。让我们讨论可以执行此任务的某些方式。

方法#1:使用列表推导
可以使用列表推导来执行此任务,其中我们迭代元组并构造所需的元组。如果我们知道元组元素的确切数量和位置,这种技术很有用。

# Python3 code to demonstrate working of
# Unpacking nested tuples
# using list comprehension
  
# initialize list
test_list = [(4, (5, 'Gfg')), (7, (8, 6))]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Unpacking nested tuples
# using list comprehension
res = [(x, y, z) for x, (y, z) in test_list]
  
# printing result
print("The unpacked nested tuple list is : " + str(res))
输出 :
The original list is : [(4, (5, 'Gfg')), (7, (8, 6))]
The unpacked nested tuple list is : [(4, 5, 'Gfg'), (7, 8, 6)]

方法 #2:使用列表推导 + “ * ”运算符
很多时候,可能存在我们不知道元组中元素的确切数量并且元组之间的元素计数是可变的情况。 “*”运算符可以执行此变量解包的任务。

# Python3 code to demonstrate working of
# Unpacking nested tuples
# using list comprehension + * operator
  
# initialize list
test_list = [(4, (5, 'Gfg')), (7, (8, 6))]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Unpacking nested tuples
# using list comprehension + * operator
res = [(z, *x) for z, x in test_list]
  
# printing result
print("The unpacked nested tuple list is : " + str(res))
输出 :
The original list is : [(4, (5, 'Gfg')), (7, (8, 6))]
The unpacked nested tuple list is : [(4, 5, 'Gfg'), (7, 8, 6)]