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函数将作为参数传递给它的特定函数应用于作为第二参数传递给它的所有列表元素。我们将其与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]