列表中元素的重复(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]

更新于:05-5-2020

443 次查看

开启你的 职业生涯

完成课程获得认证

开始
广告