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

পাইথনে লিস্ট কপি করার ৪টি কার্যকর পদ্ধতি

লিস্ট কপি কেন দরকার?

পাইথনে new_list = old_list লিখলে দুটি ভেরিয়েবল একই অবজেক্টকে রেফার করে। একটি পরিবর্তন করলে অন্যও বদলায়। আসল কপি (Shallow Copy) বানাতে নিচের পদ্ধতিগুলো ব্যবহার করুন।

পদ্ধতি ১: copy() মেথড (সর্বোচ্চ সুপারিশকৃত)

spring_fruits = ['Apricot', 'Avocado', 'Kiwi', 'Grapefruit', 'Cherry', 'Strawberry']
summer_fruits = spring_fruits.copy()
print(summer_fruits)
# আউটপুট: ['Apricot', 'Avocado', 'Kiwi', 'Grapefruit', 'Cherry', 'Strawberry']

সিনট্যাক্স: new_list = old_list.copy() — পঠনীয় ও স্পষ্ট।

পদ্ধতি ২: স্লাইসিং (Slicing) — পাইথনিক উপায়

summer_fruits = spring_fruits[:]
print(summer_fruits)

[:] মানে পুরো লিস্টের স্লাইস নেওয়া। এটি একটি নতুন লিস্ট অবজেক্ট তৈরি করে।

পদ্ধতি ৩: list() কনস্ট্রাক্টর

summer_fruits = list(spring_fruits)
print(summer_fruits)

যেকোনো ইটरेবল (টাপল, সেট, স্ট্রিং) থেকে লিস্ট বানাতে এই পদ্ধতি কাজে লাগে।

পদ্ধতি ৪: লিস্ট কম্প্রিহেনশন

summer_fruits = [fruit for fruit in spring_fruits]
print(summer_fruits)

ফিল্টারিং বা ট্রান্সফরমেশন সহ কপি করার সময় এটি উপযোগী।

তুলনাত্মক সারসংক্ষেপ

পদ্ধতিসিনট্যাক্সপড়ন্ত সুবিধাফ্লেক্সিবিলিটি
copy()list.copy()সর্বোচ্চশুধু লিস্টের জন্য
Slicinglist[:]উচ্চলিস্ট-স্পেসিফিক
list()list(iterable)মাঝারিযেকোনো ইটেরেবল
Comprehension[x for x in list]মাঝারিসর্বোচ্চ (ফিল্টার/ম্যাপ সম্ভব)

গভীর কপি (Deep Copy) কখন দরকার?

উপরের সব পদ্ধতি Shallow Copy তৈরি করে (নেস্টেড অবজেক্টগুলো শেয়ার করা থাকে)। নেস্টেড লিস্ট/অবজেক্ট সম্পূর্ণ আলাদা কপি করতে:

import copy
deep_copied_list = copy.deepcopy(original_list)

নিষ্কর্ষ

দৈনন্দিন ব্যবহারে copy() বা [:] স্লাইসিং ব্যবহার করুন। কোডের উদ্দেশ্য স্পষ্ট করতে copy() সেরা। জেনেরিক কনভারশনের জন্য list(), কমপ্লেক্স ট্রান্সফরমেশনের জন্য কম্প্রিহেনশন বেছে নিন।

  1. পাইথনে লিস্ট অফ লিস্ট জয়েন কীভাবে করবেন (ফ্ল্যাটেন)?

  2. পাইথনে লিস্টের মাধ্যমে কীভাবে ইটারেট করবেন?

  3. পাইথনে লিস্ট কীভাবে ডিফাইন করবেন?

  4. পাইথনে স্ট্রিংয়ের লিস্ট সর্ট করা