📜  Python|增加列表中的替代元素模式

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

Python|增加列表中的替代元素模式

这篇特别的文章解决了一个非常具体的问题,我们需要插入每个交替元素作为重复元素的增加大小的图案以形成图案。这可以在示范项目中发挥作用。让我们讨论一些可以做到这一点的方法。

方法 #1:使用列表理解 + enumerate()
借助 enumerate函数的列表推导可用于执行此特定任务,在该任务中,我们使用元组来增加其长度,以便使用 enumerate函数进行插入。

# Python3 code to demonstrate
# increasing alternate element pattern
# using list comprehension + enumerate()
  
# initializing list 
test_list = [1, 2, 3, 4, 5]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using list comprehension + enumerate()
# increasing alternate element pattern
res = [j for sub in ((i, '*' * k)
       for k, i in enumerate(test_list, 1))
       for j in sub]
  
# print result
print("The increasing element pattern list : " + str(res))
输出 :
The original list : [1, 2, 3, 4, 5]
The increasing element pattern list : [1, '*', 2, '**', 3, '***', 4, '****', 5, '*****']

方法#2:使用itertools.chain.from_iterable() + zip()
使用上述功能可以有效地执行此任务。 zip函数使用字符串乘法将形成的字符串与列表交错,而 from_iterable函数执行展平获得的元组的任务。

# Python3 code to demonstrate
# increasing alternate element pattern
# using itertools.chain.from_iterable() + zip()
import itertools
  
# initializing list 
test_list = [1, 2, 3, 4, 5]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using itertools.chain.from_iterable() + zip()
# increasing alternate element pattern
res = list(itertools.chain.from_iterable(
            zip(test_list, ("*" * (i + 1)
            for i in range(len(test_list))))))
  
# print result
print("The increasing element pattern list : " + str(res))
输出 :
The original list : [1, 2, 3, 4, 5]
The increasing element pattern list : [1, '*', 2, '**', 3, '***', 4, '****', 5, '*****']