การทำซ้ำแต่ละองค์ประกอบในรายการ n ครั้ง
กำหนดรายการ nums ขนาด n สร้างรายการใหม่ที่แต่ละองค์ประกอบถูกทำซ้ำ n ครั้ง
อัลกอริทึม
- n = len(nums)
- สร้างรายการว่าง ret
- วนลูปแต่ละ num ใน nums: ret += [num] * n
- คืนค่า 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))