কম্পিউটার টিউটোরিয়াল

পাইথনে লিস্ট এক্সপ্যানশন - প্রতিটি এলিমেন্ট K বার রিপ্লিকেট করা


সমস্যা বিবরণ

একটি লিস্টের প্রতিটি এলিমেন্টকে K বার রিপ্লিকেট করে একটি বড় লিস্ট বানাতে হবে।

উদাহরণ

Input:  numbers = [1, 2, 3], K = 5
Output: [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]

পদ্ধতি ১: রিপ্লিকেশন অপারেটর (*) + লুপ

numbers = [1, 2, 3]
K = 5
result = []

for i in numbers:
    result += [i] * K  # [i] * K = [i, i, i...] K বার

print(result)

পদ্ধতি ২: লিস্ট কম্প্রিহেনশন (নেস্টেড)

numbers = [1, 2, 3]
K = 5

result = [i for i in numbers for j in range(K)]
print(result)

পদ্ধতি ৩: itertools.chain + repeat (মেমরি দক্ষ)

from itertools import chain, repeat

numbers = [1, 2, 3]
K = 5

result = list(chain.from_iterable(repeat(x, K) for x in numbers))
print(result)

তুলনা

পদ্ধতিপড়ার সুবিধাপারফরম্যান্সমেমরি
Replication + Loopমidiumদ্রুতO(n×K)
Nested Comprehensionউচ্চদ্রুতO(n×K)
itertools.chain+repeatনিম্নসর্বোচ্চ (জেনারেটর)O(1) এক্সট্রা

উপসংহার

  • সাধারণ ব্যবহারের জন্য **নেস্টেড লিস্ট কম্প্রিহেনশন** সেরা
  • খুব বড় K বা মেমরি কন্সার্ন হলে **itertools** ব্যবহার করুন
  • [i] * K প্যাটার্ন মনে রাখুন - এটি খুব কাজে আসে
  1. পাইথনে ডুপ্লিকেট এলিমেন্ট যাচাই (Contains Duplicate)

  2. পাইথনে নেস্টেড লিস্ট কম্প্রিহেনশন

  3. পাইথনে লিস্ট (List) এর ওপর ইটারেট করা

  4. পাইথনে ব্যাকওয়ার্ড ইটারেশন (Backward Iteration)