📜  Python|列表扩展 K

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

Python|列表扩展 K

有时,我们需要减少Python列表的长度,但有时我们可能还需要增加它的大小,并且也需要通过将每个元素重复 N 次来增加它的大小。这种类型的实用程序可以在日常编程中出现。让我们讨论一些可以实现这一目标的方法。

方法#1:使用列表推导
可以使用列表推导方法来执行此任务,它只是通用循环方法的简化版本,其中我们使用迭代将每个元素重复 K 次。

# Python3 code to demonstrate
# List extension by K 
# using list comprehension
  
# initializing list
test_list = [4, 5, 2, 8]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# using list comprehension 
# to extend list 
res = [i for i in test_list for j in range(K)]
  
# printing result
print("The resultant list after extension is : " + str(res))
输出 :

方法 #2:使用itertools.chain() + itertools.tee() + zip()
上述三个函数的组合也可以帮助实现对这个特定问题的解决方案。 tee函数在列表中重复 K 次,嵌套在 zip 中,它将迭代与特定元素链接起来,chain函数对所有元素执行此任务。

# Python3 code to demonstrate
# List extension by K 
# using itertools.chain() + itertools.tee() + zip()
from itertools import chain, tee
  
# initializing list
test_list = [4, 5, 2, 8]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# using itertools.chain() + itertools.tee() + zip()
# to extend list 
res = list(chain(*zip(*tee(test_list, K))))
  
# printing result
print("The resultant list after extension is : " + str(res))
输出 :