কম্পিউটার

Python List Comprehension:A How-to Guide

একটি পাইথন তালিকা বোঝা একটি বিদ্যমান তালিকার উপর ভিত্তি করে একটি তালিকা তৈরি করার একটি উপায়। তালিকা বোধগম্যতা সাধারণত একটি তালিকা থেকে আইটেম ফিল্টার করতে বা বিদ্যমান তালিকার মান পরিবর্তন করতে ব্যবহৃত হয়। তালিকা বোঝা বর্গাকার বন্ধনীর মধ্যে আবদ্ধ।

আপনি যখন তালিকার সাথে কাজ করছেন, আপনি একটি বিদ্যমান অনুক্রমের বিষয়বস্তুর উপর ভিত্তি করে একটি তালিকা তৈরি করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি অক্ষরের ক্রম অনুসারে একটি তালিকা তৈরি করতে চাইতে পারেন। অথবা আপনি এমন একটি তালিকা চাইতে পারেন যা অন্য তালিকার বিষয়বস্তুকে দুই দ্বারা গুণ করে।

এখানেই তালিকা বোধগম্যতা আসে। এই টিউটোরিয়ালটি উদাহরণ সহ, পাইথন তালিকার মূল বিষয়গুলি এবং কীভাবে তালিকা বোঝার ব্যবহার করতে হয় তা অন্বেষণ করবে।

পাইথন তালিকা:একটি রিফ্রেশার

তালিকার ডেটা স্ট্রাকচার আপনাকে পাইথনে আইটেমগুলির সংগ্রহ সংরক্ষণ করতে দেয়। তালিকাগুলি সাধারণত ব্যবহৃত হয় যখন আপনি একাধিক মানগুলির সাথে কাজ করতে চান যেগুলি কোনওভাবে সম্পর্কিত৷

উদাহরণস্বরূপ, আপনি একটি আইসক্রিমের দোকানে বিক্রি হওয়া আইসক্রিমের সমস্ত স্বাদ সংরক্ষণ করতে একটি তালিকা ব্যবহার করতে পারেন। অথবা আপনি একটি ওয়াইন ক্লাবে সদস্যদের ফোন নম্বরের একটি তালিকা সংরক্ষণ করতে একটি তালিকা ব্যবহার করতে পারেন৷

এখানে পাইথনে একটি তালিকার একটি উদাহরণ রয়েছে:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

এখন যেহেতু আমরা তালিকার মূল বিষয়গুলি সংশোধন করেছি, আমরা কীভাবে তালিকা বোঝার ব্যবহার করতে হয় সে সম্পর্কে কথা বলা শুরু করতে পারি৷

পাইথন তালিকা বোধগম্যতা

একটি পাইথন তালিকা বোঝা অন্য তালিকার বিষয়বস্তু থেকে একটি নতুন তালিকা তৈরি করে। আপনি একটি তালিকা অনুলিপি করতে বা একটি নতুন তালিকায় বিদ্যমান তালিকার বিষয়বস্তু পরিবর্তন করতে একটি তালিকা বোঝার ব্যবহার করতে পারেন। অথবা আপনি একটি তালিকা বোঝার সাথে একটি তালিকায় অন্য পুনরাবৃত্তিযোগ্য বিষয়বস্তু স্থানান্তর করতে পারেন।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

আপনি ফিল্টারগুলি নির্দিষ্ট করতে পারেন যাতে আপনার নতুন তালিকায় শুধুমাত্র কিছু মান অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, আপনি সংখ্যার তালিকা থেকে একটি নতুন তালিকা তৈরি করতে পারেন। আপনার নতুন তালিকা শুধুমাত্র 250 এর বেশি সংখ্যা অন্তর্ভুক্ত করতে পারে।

পাইথনে একটি তালিকা বোঝার জন্য সিনট্যাক্স নিম্নরূপ:

[expression for item in list]

এই সিনট্যাক্সটি পাইথনের এর জন্য অনুরূপ বিবৃতি কিন্তু, বক্তব্য এক লাইনে। বিবৃতির জন্য a-এর মধ্যে পার্থক্য করার জন্য, একটি তালিকা বোধগম্যতা বর্গাকার বন্ধনীর মধ্যে আবদ্ধ।

উপরের সিনট্যাক্সের তিনটি অংশ রয়েছে:

  • অভিব্যক্তি :শেষ মান যা নতুন তালিকায় যায়।
  • আইটেম :তালিকার পৃথক আইটেম যার উপরে আপনি পুনরাবৃত্তি করেন।
  • তালিকা :তালিকা বা পুনরাবৃত্তিযোগ্য বস্তু যার মাধ্যমে তালিকা বোঝার পথ অতিক্রম করে (গ্রহণযোগ্য ডেটা প্রকারের মধ্যে রয়েছে টিপল, স্ট্রিং এবং তালিকা)।

আপনি পাইথনের সাথে একটি তালিকা বোঝা ব্যবহার করতে পারেন যদি…অন্যথার ভিতরে বিবৃতি:

[expression for item in list if condition else none]

এই বোধগম্যতা শুধুমাত্র আইটেমগুলিকে তালিকায় যোগ করে যদি তারা নির্দিষ্ট শর্ত পূরণ করে।

তালিকার বোধগম্যতা ব্যবহার করে আপনি সম্পূর্ণ এর জন্য সংজ্ঞায়িত না করে বিদ্যমান একটি থেকে একটি নতুন তালিকা তৈরি করতে পারবেন বিবৃতি এর জন্য বিবৃতিগুলি কমপক্ষে দুটি লাইন কোড নেয় যেখানে আপনি একটি লাইনে একটি তালিকা বোঝা লিখতে পারেন৷

কিছু লোক বলে যে তালিকা বোঝা আরও পাইথনিক কোড। এটি কারণ তারা একটি ছোট এর জন্য ব্যবহার করার চেয়ে বেশি দক্ষ৷ বিবৃতি।

পাইথন তালিকা বোঝার উদাহরণ

ধরুন আমরা আমাদের দোকানে যে সমস্ত চিকেন পিজ্জা বিক্রি করি তার একটি তালিকা তৈরি করতে চাই। আমরা সমস্ত চিকেন পিজাকে একটি চিকেন-এ স্থানান্তর করতে যাচ্ছি আমাদের মেনুতে বিভাগ। এটি করার জন্য, আমরা এর জন্য ব্যবহার করে আমাদের পিজা ফিল্টার করতে পারি বিবৃতি অথবা, আমরা একটি তালিকা বোঝার ব্যবহার করে আমাদের তালিকা ফিল্টার করতে পারি।

আমরা পিজ্জার একটি নতুন তালিকা তৈরি করতে একটি তালিকা বোঝা ব্যবহার করতে পারি যার নামের মধ্যে রয়েছে চিকেন আমাদের বিদ্যমান পিজ্জার তালিকার উপর ভিত্তি করে। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

chicken_pizzas = [p for p in pizzas if "Chicken" in p]
print(chicken_pizzas)

আমাদের বোধগম্যতা নিম্নলিখিত আউটপুট তালিকা প্রদান করে:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

আমাদের কোডে, আমরা প্রথমে আমাদের মেনুতে পিজ্জার একটি তালিকা সংজ্ঞায়িত করি। আমাদের পিজ্জাগুলি পাইথন ভেরিয়েবলে সংরক্ষিত থাকে যাকে পিজ্জা বলা হয় . তারপরে, আমরা একটি তালিকা বোঝা ব্যবহার করি পিজ্জার একটি নতুন তালিকা তৈরি করতে যার নাম চিকেন রয়েছে৷

আমাদের তালিকা বোধগম্য নিম্নলিখিত অংশগুলি নিয়ে গঠিত:

  • p :এটি আমাদের তালিকায় যোগ করার মান।
  • পিজাতে p এর জন্য :এটি আমাদের "পিজ্জা" তালিকার প্রতিটি পিজ্জার মাধ্যমে লুপ করে।
  • যদি p এ “চিকেন” :এটি প্রতিটি পিজ্জাতে "চিকেন" আছে কিনা তা পরীক্ষা করে। যদি এটি সত্যে মূল্যায়ন করা হয়, তাহলে “p”-এ সংরক্ষিত মান আমাদের তালিকায় যোগ করা হবে।

আমাদের তালিকা বোধগম্য শুধুমাত্র কোডের একটি লাইন গ্রহণ করেছে। যেখানে আমাদের পরবর্তী উদাহরণে, আমাদের একটি for সহ তিনটি লাইন কোড ব্যবহার করতে হবে এটা কাজ করতে বিবৃতি. আমাদের পরবর্তী উদাহরণ দেখায় যে তালিকার বোধগম্যতা আপনাকে ক্লিনার কোড লিখতে কতটা সাহায্য করে।

একটি তালিকা বোঝা ছাড়া

চিকেন পিজ্জার উদাহরণে ফিরে আসা যাক। তালিকার বোধগম্যতা ব্যবহার না করে, যদি আমরা আমাদের মেনুতে চিকেন পিজ্জার একটি তালিকা তৈরি করতে চাই, তাহলে আমরা এই কোডটি ব্যবহার করব:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
chicken_pizzas = []

for pizza in pizzas:
	if "Chicken" in pizza:
		chicken_pizzas.append(pizza)

print(chicken_pizzas)

আমাদের কোড ফিরে আসে:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

প্রথমত, আমরা দুটি তালিকা সংজ্ঞায়িত করি। একটি তালিকা আমাদের দোকানে বিক্রি করা পিজ্জার একটি তালিকা সংরক্ষণ করে। অন্য তালিকায় আমরা যে সমস্ত চিকেন পিজ্জা বিক্রি করি তার একটি তালিকা সঞ্চয় করে। আমরা যে চিকেন পিজ্জা বিক্রি করি তার তালিকা প্রাথমিকভাবে খালি।

আমরা আমাদের পিজ্জার তালিকায় প্রতিটি পিজ্জার মধ্য দিয়ে যাওয়ার জন্য একটি "এর জন্য" বিবৃতি ব্যবহার করি। তারপর, আমরা প্রতিটি পিৎজাতে চিকেন শব্দটি রয়েছে কিনা তা পরীক্ষা করে দেখুন যদি একটি পিজ্জাতে চিকেন শব্দ থাকে , আমরা আমাদের চিকেন পিজ্জার তালিকায় সেই পিজা যোগ করি। এই ক্ষেত্রে, তিনটি পিজ্জাতে চিকেন থাকে , এবং সেই তিনটি পিজ্জাই আমাদের চিকেন_পিজ্জা-এ যোগ করা হয়েছে তালিকা।

আপনি দেখতে পাচ্ছেন, একটি পিজ্জাতে চিকেন আছে কিনা তা পরীক্ষা করতে এবং আমাদের তালিকায় এটি যোগ করতে, আমরা কোডের তিনটি লাইন ব্যবহার করি। এই কোডটি লেখার আরও কার্যকর উপায় রয়েছে:তালিকা বোঝার ব্যবহার।

ইফ… অন্যথায় ব্যবহার করে বোঝার তালিকা করুন

এছাড়াও আপনি একটি if…else ব্যবহার করতে পারেন একটি তালিকা বোঝার সাথে বিবৃতি।

আগে, আমরা একটি if ব্যবহার করতাম আমাদের চিকেন পিজ্জার তালিকায় একটি পিজা যোগ করার বিবৃতি। পিজ্জার নামের সাথে চিকেন শব্দটি অন্তর্ভুক্ত হলেই আমরা একটি পিজা যোগ করি . কিন্তু, ধরুন আমরা কোন পিৎজা নিরামিষ, তার একটি তালিকা তৈরি করছি৷

পিজ্জার নামের মুরগি থাকলে আমরা একটি তালিকায় "মাংস" যোগ করতে চাই এবং নিরামিষাশী যদি পিজ্জার নামে চিকেন না থাকে .

এটি একটি তালিকা বোঝার ব্যবহার করে করা যেতে পারে:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas]

print(is_veggie)

আমাদের কোড ফিরে আসে:

[‘Meat’, ‘Vegetarian’, ‘Meat’, ‘Vegetarian’, ‘Vegetarian’, ‘Meat’]

আসুন আমাদের কোড ভাঙ্গা যাক। প্রথমে, আমরা pizzas নামে পিজ্জার একটি তালিকা ঘোষণা করি . তারপরে, পিজ্জার নামে চিকেন আছে কিনা তা মূল্যায়ন করতে আমরা একটি তালিকা বোঝা ব্যবহার করি বা না।

যদি পিজ্জার নামে চিকেন থাকে , মান মাংস আমাদের is_veggie এ যোগ করা হয়েছে তালিকা অন্যথায়, মান নিরামিষাশী যোগ করা হয়৷

আপনি দেখতে পাচ্ছেন, আমাদের is_veggie-এ প্রথম মান তালিকা হল মাংস , কারণ পিজ্জা-এ এর সংশ্লিষ্ট মান তালিকা হল চিকেন . কিন্তু, আমাদের পরবর্তী মান হল নিরামিষাশী , কারণ পিজ্জা-এ এর সংশ্লিষ্ট মান তালিকা হল মার্গেরিটা , যেটিতে চিকেন নেই .



উপসংহার

তালিকা বোধগম্যতা আপনাকে একটি বিদ্যমান তালিকার উপর ভিত্তি করে একটি নতুন তালিকা তৈরি করতে দেয়। তালিকা বোধগম্যতা ব্যবহার করে, আপনি একটি তালিকার একটি অনুলিপি তৈরি করতে পারেন, বা একটি নতুন তালিকা তৈরি করতে পারেন যা একটি পুরানো তালিকা থেকে মানগুলিকে ফিল্টার করে৷

এই টিউটোরিয়ালটি উদাহরণের সাথে, পাইথন তালিকার মূল বিষয়গুলি এবং নতুন তালিকা তৈরি করতে কীভাবে তালিকা বোঝার কৌশল ব্যবহার করতে হয় তা নিয়ে আলোচনা করা হয়েছে৷

আপনি কি পাইথনে কোডিং সম্পর্কে আরও জানতে চান? আমাদের কিভাবে পাইথন শিখতে হয় গাইড দেখুন। পাইথনকে আয়ত্ত করার জন্য আপনার যাত্রা চালিয়ে যেতে সাহায্য করার জন্য এই গাইডটিতে শেখার সংস্থানগুলির একটি তালিকা রয়েছে৷


  1. পাইথন তালিকা পদ্ধতি:একটি ধাপে ধাপে নির্দেশিকা

  2. পাইথন তালিকায় খুঁজুন:একটি শিক্ষানবিস গাইড

  3. পাইথন স্যুইচ স্টেটমেন্ট:একটি কিভাবে করতে হবে গাইড

  4. পাইথন হ্যালো ওয়ার্ল্ড:একটি কিভাবে-টু গাইড