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

পাইথন লিস্ট কম্প্রিহেনশন এবং স্লাইসিং


এই বিভাগে আমরা পাইথন লিস্ট স্লাইসিং এবং লিস্ট কম্প্রিহেনশন বুঝব।

লিস্ট স্লাইসিং কী?

নামই ইঙ্গিত দেয়, স্লাইস মানে - কিছু ছোট টুকরোতে কাটা (স্লাইস)। লিস্ট স্লাইসিং হলো মূল লিস্ট থেকে একটি অংশ বের করার প্রক্রিয়া। লিস্ট স্লাইসিং-এ আমরা লিস্ট কাটব যেগুলো আমরা চাই (যেমন কোথায় শুরু, কোথায় থামবে এবং কতটুকু বৃদ্ধি দিয়ে স্লাইস করবে)।

লিস্ট কম্প্রিহেনশন কী?

লিস্ট কম্প্রিহেনশন হলো একটি বিদ্যমান লিস্টের ভিত্তিতে নতুন লিস্ট তৈরি করা। এটি বিদ্যমান লিস্টের ভিত্তিতে নতুন লিস্ট সংজ্ঞায়িত ও তৈরি করার একটি সুন্দর উপায় প্রদান করে।

লিস্ট স্লাইসিং

যেহেতু আমরা একটি লিস্ট স্লাইস করব, তাই প্রথমে একটি লিস্ট তৈরি করা যাক:

>>> mylist = ["Which ", "Language ", "To ", "Choose ", "Difficult, ", "Python ", "  ", "Java ", "Kotlin ", "Many more"]

লিস্টকে পেছন থেকে ইনডেক্স করা যায়, -১ (শেষ এলিমেন্ট) থেকে শুরু করে -১ করে বৃদ্ধি পায়। তাই -১ হবে শেষ এলিমেন্ট, -২ হবে শেষ থেকে দ্বিতীয়।

>>> mylist_slice1 = mylist[0: -1:2]
>>> mylist_slice1
['Which ', 'To ', 'Difficult, ', 'Java ']

লিস্ট স্লাইস করার সময়, আমাদের প্রথমে লিস্টটি কল করতে হবে (আমাদের ক্ষেত্রে mylist) এবং তারপর স্লাইসিংয়ের জন্য আমাদের প্রয়োজনীয়তাগুলো দিতে হবে। এগুলো অবশ্যই ব্র্যাকেট [] এর ভেতরে রাখতে হবে। [] এর ভেতরে আমাদের যে আর্গুমেন্টগুলো দিতে হতে পারে:

  • প্রথম আর্গুমেন্ট, স্লাইসিং শুরু করার ইনডেক্স।
  • দ্বিতীয় আর্গুমেন্ট, স্লাইসিং বন্ধ করার ইনডেক্স।
  • তৃতীয় আর্গুমেন্ট, স্লাইস করার ধাপ/বৃদ্ধি (ঐচ্ছিক)।

সুতরাং نهایی রূপ হবে:

mylist[START: STOP:STEP]
>>> mylist_slice2 = mylist[1:-1:2]
>>> mylist_slice2
['Language ', 'Choose ', 'Python ', 'Kotlin ']

লিস্ট কম্প্রিহেনশন

আপনি এখন পর্যন্ত জানেন (উপর থেকে), লিস্ট কম্প্রিহেনশন হলো বিদ্যমান একটি লিস্ট থেকে নতুন লিস্ট তৈরি করা। তাই প্রথমে একটি লিস্ট (মূল লিস্ট) তৈরি করা যাক, আমি range() ফাংশন ব্যবহার করে লিস্ট কম্প্রিহেনশনের জন্য অস্থায়ী সংখ্যার লিস্ট তৈরি করছি।

>>> mylist1 = [x for x in range(0, 40)]
>>> mylist1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
>>>
>>> mylist2 = [x for x in range(0,41) if x%2 == 0]
>>> mylist2
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]

উপরোক্তে কী হচ্ছে তা বুঝি: আমরা প্রথমে একটি অস্থায়ী ভেরিয়েবল নাম "x" তৈরি করেছি, এরপর ব্র্যাকেটের ভেতরে ০ থেকে ৪০ পর্যন্ত রেঞ্জ দিয়ে একটি for লুপ চালিয়েছি এবং এক্সিকিউট করলে ০ থেকে ৩৯ পর্যন্ত সংখ্যার একটি লিস্ট তৈরি হয়েছে। তারপর আমরা আরেকটি লিস্ট তৈরি করেছি এবং সেটে একটি শর্ত যোগ করেছি, শর্ত ছিল "if x%2 == 0"। এর মানে আমরা শুধু জোড় সংখ্যা খুঁজছি।

লিস্ট কম্প্রিহেনশনের জন্য স্ট্রিং ব্যবহার করে আরেকটি লিস্ট তৈরি করা যাক।

>>> strlist = ["This", "Is", "A" , "List" , "Of", "Strings", "For", "List", "Comprehension"]
>>> print([x.lower() for x in strlist])
['this', 'is', 'a', 'list', 'of', 'strings', 'for', 'list', 'comprehension']

উপরে আমাদের একটি স্ট্রিং লিস্ট আছে, এবং আমরা লিস্ট কম্প্রিহেনশন ব্যবহার করে লিস্ট আইটেমগুলো ছোট হাতের অক্ষরে রূপান্তর করেছি।


  1. পাইথনে append() এবং extend() ফাংশন

  2. পাইথন লিস্ট কম্প্রিহেনশন: সিনট্যাক্স এবং ব্যবহার

  3. পাইথনে try এবং except (Exception Handling)

  4. পাইথনে লিস্ট কম্প্রিহেনশন ব্যবহার করে অ্যারে লিস্টে ০ ও ১ পৃথক করার প্রোগ্রাম