列表中元素的重复(Python)
在我们需要重复列表中值的情况下。这种值的复制可以在 Python 中通过以下方法实现。
使用嵌套 for 循环
这是一种直接的方法,其中选择每个元素,通过一个内部的 for 循环来创建其副本,然后把它们都传递给一个外部的 for 循环。
示例
# Given list listA = ['Mon', 'Tue', 9, 3, 3] print("Given list : ",listA) # Adding another element for each element Newlist = [i for i in listA for n in (0, 1)] # Result print("New list after duplication: ",Newlist)
输出
运行上面的代码,将得到以下结果 -
Given list : ['Mon', 'Tue', 9, 3, 3] New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
使用 itertools
itertools 模块处理可迭代对象中的数据操作。在这里,我们应用 chain.from_iterables,它
示例
import itertools # Given list listA = ['Mon', 'Tue', 9, 3, 3] print("Given list : ",listA) # Adding another element for each element Newlist = list(itertools.chain.from_iterable([n, n] for n in listA)) # Result print("New list after duplication: ",Newlist)
输出
运行上面的代码,将得到以下结果 -
Given list : ['Mon', 'Tue', 9, 3, 3] New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
与 reduce
reduce 函数对传递给它的一个特定函数,以及作为第二个参数传递到它上面的所有列表元素,执行操作。我们用它和 add 函数一起使用,后者可添加列表中每个元素的重复元素。
示例
from functools import reduce from operator import add # Given list listA = ['Mon', 'Tue', 9, 3, 3] print("Given list : ",listA) # Adding another element for each element Newlist = list(reduce(add, [(i, i) for i in listA])) # Result print("New list after duplication: ",Newlist)
输出
运行上面的代码,将得到以下结果 -
Given list : ['Mon', 'Tue', 9, 3, 3] New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
广告