📜  Python|通过元组中的元素数扩展元组

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

Python|通过元组中的元素数扩展元组

有时,在处理数据时,我们可以有一个应用程序,在该应用程序中,我们需要按元素数量复制元组元素。这是非常独特的应用程序,但在某些情况下可能会发生。让我们讨论可以执行此任务的某些方式。

方法#1:使用嵌套循环
这是可以执行此任务的蛮力方法。在这种情况下,外循环用于迭代列表中的每个元素,内循环是通过外循环添加等于相应元组长度的相似元素。

# Python3 code to demonstrate working of
# Extend tuples by count in list
# using nested loop
  
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', )]
  
# printing original tuples list
print("The original list : " + str(test_list))
  
# Extend tuples by count in list
# using nested loop
res = []
for sub in range(len(test_list)):
    for ele in range(len(test_list[sub])):
        res.append(test_list[sub])
  
# printing result
print("The modified and extended list is : " + str(res))
输出 :

方法#2:使用循环+ chain()
这是可以执行此任务的另一种方式。在此,我们减少一个循环、内循环并将元组乘以一并使用chain() 进行展平。根据不同的情况,它可能会有一定的开销。

# Python3 code to demonstrate working of
# Extend tuples by count in list
# using loop + chain()
from itertools import chain
  
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', )]
  
# printing original tuples list
print("The original list : " + str(test_list))
  
# Extend tuples by count in list
# using loop + chain()
res = []
for sub in range(len(test_list)):
    res.append([test_list[sub]]*len(test_list[sub]))
res1 = chain(*res)
res = list(res1)
  
# printing result
print("The modified and extended list is : " + str(res))
输出 :