列表中元素的重複(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 次檢視

開啟你的 職業生涯

完成課程獲得認證

開始
廣告