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

โปรแกรมสร้างรายการซ้ำโดยทำซ้ำแต่ละองค์ประกอบ n ครั้งใน Python

การทำซ้ำแต่ละองค์ประกอบในรายการ n ครั้ง

กำหนดรายการ nums ขนาด n สร้างรายการใหม่ที่แต่ละองค์ประกอบถูกทำซ้ำ n ครั้ง

อัลกอริทึม

  1. n = len(nums)
  2. สร้างรายการว่าง ret
  3. วนลูปแต่ละ num ใน nums: ret += [num] * n
  4. คืนค่า ret

ตัวอย่างโค้ด

def solve(nums):
    n = len(nums)
    ret = []
    for num in nums:
        ret += [num] * n
    return ret

nums = [1,5,8,3]
print(solve(nums))

ผลลัพธ์

[1, 1, 1, 1, 5, 5, 5, 5, 8, 8, 8, 8, 3, 3, 3, 3]

วิธีอื่น

# ใช้ list comprehension
ret = [num for num in nums for _ in range(len(nums))]

# ใช้ itertools
from itertools import chain, repeat
ret = list(chain.from_iterable(repeat(num, len(nums)) for num in nums))