বাংলায় পাইথন
  • পরিচিতি
  • ইনস্টলেশন
  • ব্যাসিক কনসেপ্ট
    • সাধারণ কিছু অপারেশন
    • আরও কিছু নিউমেরিক অপারেশন
    • স্ট্রিং
    • ব্যাসিক ইনপুট আউটপুট
    • স্ট্রিং অপারেশন
    • টাইপ কনভার্সন
    • ভ্যারিয়েবল
    • ইনপ্লেস অপারেটর
    • এডিটর এর ব্যবহার
  • কন্ট্রোল স্ট্রাকচার
    • বুলিয়ান
    • if স্টেটমেন্ট
    • else স্টেটমেন্ট
    • বুলিয়ান লজিক
    • অপারেটর প্রেসিডেন্স
    • while লুপ
    • লিস্ট
    • লিস্ট অপারেশন
    • লিস্ট ফাংশন
    • রেঞ্জ
    • for লুপ
  • গুরুত্বপূর্ণ ডাটা টাইপ
    • None
    • ডিকশনারি
    • ডিকশনারি ফাংশন
    • টাপল
    • আবারও লিস্ট
    • লিস্ট ও ডিকশনারি কম্প্রিহেনশন
  • ফাংশন ও মডিউল
    • কোডের পুনব্যবহার
    • ফাংশন
    • ফাংশন আর্গুমেন্ট
    • ফাংশন রিটার্ন
    • কমেন্ট ও ডক স্ট্রিং
    • অবজেক্ট হিসেবে ফাংশন
    • মডিউল
    • স্ট্যান্ডার্ড লাইব্রেরী
    • pip
  • ফাইল ও এক্সেপশন
    • এক্সেপশন
    • এক্সেপশন হ্যান্ডেলিং
    • finally
    • এক্সেপশন Raise
    • Assertions
    • ফাইল খোলা
    • ফাইল পড়া
    • ফাইলে লেখা
    • ফাইল নিয়ে সঠিক কাজ
  • ফাংশনাল প্রোগ্রামিং
    • ভূমিকা
    • ল্যামডা
    • ম্যাপ ও ফিল্টার
    • জেনারেটর
    • ডেকোরেটর
    • রিকারসন
    • সেট
    • itertools
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
    • ক্লাস
    • ইনহেরিটেন্স
    • ম্যাজিক মেথড
    • অপারেটর অভারলোডিং
    • অবজেক্ট লাইফ সাইকেল
    • ডাটা হাইডিং
    • স্ক্লাস মেথড ও ট্যাটিক মেথড
    • প্রোপার্টিস
  • রেগুলার এক্সপ্রেশন
    • পরিচিতি
    • মেটা ক্যারেক্টার
    • ক্যারেক্টার ক্লাস
    • গ্রুপ
    • স্পেশাল সিকুয়েন্স
  • অতিরিক্ত কিছু বিষয়
    • পাইথনিকনেস
    • PEP
    • main
    • # -- coding: utf-8 --
    • #! /usr/bin/env python
    • CPython
    • ডকুমেন্টেশন পড়া
  • প্যাকেজিং
Powered by GitBook
On this page
  1. গুরুত্বপূর্ণ ডাটা টাইপ

আবারও লিস্ট

স্বাভাবিক স্লাইস আমরা আগে দেখেছি লিস্ট থেকে কিভাবে ইনডেক্স দিয়ে একটি মাত্র ভ্যালু অ্যাক্সেস করা যায়। এখন দেখবো কিভাবে একটি লিস্টকে ভাগ করে আরেকটি লিস্ট তৈরি করা যায় অথবা অন্যভাবে বলতে গেলে কিভাবে একটি লিস্ট থেকে একাধিক ভ্যালু নিয়ে আরেকটি লিস্ট হিসেবে অ্যাক্সেস করা যায়। এ কাজের জন্য [] এর মধ্যে শুধুমাত্র একটি ইনডেক্স না লিখে বরং কোলন দিয়ে একাধিক ইনডেক্স লিখতে হয়।

উদাহরণ,

some_marks = [2, 4, 6, 32, 60, 65, 69, 76, 80, 85, 90]

avg_marks = some_marks[4:8]
print(avg_marks)

good_marks = some_marks[8:]
print(good_marks)

poor_marks = some_marks[:4]
print(poor_marks)

উপরের প্রোগ্রামে আমরা some_marks লিস্ট থেকে স্লাইস করে বিভিন্ন সাব লিস্ট পেয়েছি। যেমন প্রথমে আমরা চতুর্থ ইনডেক্স থেকে শুরু করে অষ্টম ইনডেক্স পর্যন্ত নিয়েছি। দ্বিতীয় প্রিন্টের মধ্যে আমরা অষ্টম ইনডেক্স থেকে শুরু করে শেষ পর্যন্ত এলিমেন্ট গুলো নিয়েছি। আর তৃতীয় প্রিন্টের মধ্যে আমরা শুরু থেকে চতুর্থ ইনডেক্স পর্যন্ত ভ্যালু গুলো নিয়েছি।

লিস্ট থেকে স্লাইস করার সময় কোলনের দু পাশে দুটো ইনডেক্স ব্যবহার করলে, বাম পাশের ইনডেক্সের ভ্যালু ইনক্লুড থাকে কিন্তু ডান পাসের ইনডেক্সের ভ্যালু ইনক্লুড হয় না। ব্যাপারটা range এর মতই।

উপরের প্রোগ্রামের আউটপুট,

[60, 65, 69, 76]
[80, 85, 90]
[2, 4, 6, 32]

ইনডেক্স জাম্প লিস্ট স্লাইসের সময় শুরু ও শেষ ইনডেক্স বাদে ধাপও উল্লেখ করে দেয়া যায়। অর্থাৎ, উল্লেখিত ইনডেক্সের মধ্যবর্তী ভ্যালু গুলো সিলেক্ট হবে কিন্তু সেখান থেকে উল্লেখিত ধাপ পরিমাণ ইনডেক্স জাম্প করে করে ভ্যালু নেয়া হবে। যেমন -

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[2:9:3])

আউটপুট,

[3, 6, 9]

এখানে numbers লিস্ট থেকে দ্বিতীয় এবং নবম ইনডেক্সের মধ্যবর্তী ভ্যালু গুলো নেয়া হয়েছে কিন্তু প্রতিবার তিনটি করে স্টেপ জাম্প করে।

নেগেটিভ ইনডেক্স স্লাইস আমরা দেখেছি কিভাবে শুরু ও শেষ ইনডেক্স নির্ধারণ করে দিয়ে, একটি লিস্ট থেকে মধ্যবর্তী কিছু ভ্যালু নিয়ে এর স্লাইস তৈরি করা যায়। চাইলে এভাবে স্লাইস না করে - মুল লিস্টের শুরুর ইনডেক্স নির্ধারণ করে দিয়ে এবং শেষ থেকে উল্টা ইনডেক্স নির্ধারণ করে দিয়েও একটি স্লাইসড লিস্ট পাওয়া যায়।

উদাহরণ,

squares = [1, 2, 5, 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 4, 6, 7, 8]
print(squares[3:-4])

আউটপুট,

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

squares[3:-4] এর মাধ্যমে আমরা এই লিস্ট থেকে স্লাইস করার জন্য শুরুর ইনডেক্স বলে দিয়েছি 3 এবং লিস্টের শেষ থেকে হিসেবে শুরু করে চতুর্থ ইনডেক্সকে নির্ধারণ করে দিয়েছি স্লাইস করার শেষ ইনডেক্স হিসেবে।

লিস্ট রিভার্স যদি একটি লিস্ট থেক স্লাইস তৈরি করার সময় স্টেপ হিসেবে নেগেটিভ ভ্যালু সেট করা হয় (দ্বিতীয় কোলনের ডান পাশে) এবং মুল লিস্টের সব ভ্যালুকেই সিলেক্ট করে নিতে বলা হয় (প্রথম কোলনের দু পাশে ইনডেক্স উল্লেখ্য না করে) তাহলে বস্তুত মুল লিস্টের একটি রিভার্স বা উল্টো লিস্ট তৈরি হয়। নিচের উদাহরণটি দেখি -

values = [3, 4, 5, 6, 7, 8]
print(values[::-1])

আউটপুট,

[8, 7, 6, 5, 4, 3]

লিস্টের উপর করা কিছু নিউমেরিক অপারেশন আশা করছি নিচের উদাহরণটির মধ্যে থাকা কমেন্ট গুলো দেখেই সবাই বুঝতে পারবেন প্রত্যেকটি মজার এবং গুরুত্বপূর্ণ ফাংশনের কাজ -

# Prints the minimum value among all the elements of the list below
print(min([1, 2, 3, 4, 0, 2, 1]))

# Prints the maximum value among all the elements of the following list
print(max([1, 4, 9, 2, 5, 6, 8]))

# Print sum of all the elements of the following list
print(sum([1, 2, 3, 4, 5]))

আউটপুট,

0
9
15
PreviousটাপলNextলিস্ট ও ডিকশনারি কম্প্রিহেনশন

Last updated 6 years ago

সংকলন -

নুহিল মেহেদী