সমস্যা বিবরণ
একটি লিস্টের প্রতিটি এলিমেন্টকে 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প্যাটার্ন মনে রাখুন - এটি খুব কাজে আসে