Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การซ้ำขององค์ประกอบในลิสต์ใน 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)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]

ใช้ itertools

โมดูล itertools จัดการการจัดการข้อมูลใน iterables ที่นี่เราใช้ chain.from_iterable ซึ่ง...

ตัวอย่าง

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)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]

ด้วย reduce

ฟังก์ชัน reduce ใช้ฟังก์ชันเฉพาะที่ส่งให้เป็น argument ไปยังองค์ประกอบลิสต์ทั้งหมดที่ส่งเป็น argument ที่สอง เราใช้กับฟังก์ชัน 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)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]