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