মূল কন্টেন্টে যান
মডিউল 3 · 2-এর পাঠ 4কোর্সে 10/36~10 min
মডিউল পাঠ (2/4)

Tuples এবং unpacking

একটি টুপল একটি আদেশকৃত এবং অপরিবর্তনীয় ক্রম: একবার তৈরি হয়ে গেলে, আপনি করতে পারেন আর এর উপাদান পরিবর্তন করবেন না। এটি বন্ধনী দিয়ে লেখা হয় (যদিও আসলে যা সংজ্ঞায়িত করে তা হল কমা)।

একটি টিপল তৈরি করা হচ্ছে

Python
vuota = ()
una = (42,)             # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)

তালিকার মতো হুবহু সূচী এবং স্লাইসিং কাজ দ্বারা অ্যাক্সেস করুন: coords[0], coords[-1], mista[:2]।

কখন তালিকার পরিবর্তে একটি টিপল ব্যবহার করবেন

  • যখন মান একটি নির্দিষ্ট সংগ্রহ উপস্থাপন করে যেটি পরিবর্তন করা উচিত নয় (সমন্বয়, (year, month, day) হিসাবে একটি তারিখ, একটি সংস্করণ (1, 2, 3))।
  • যখন আপনাকে একটি অভিধান কী বা এর একটি উপাদান হিসাবে মানটি ব্যবহার করতে হবে একটি set: শুধুমাত্র অপরিবর্তনীয় (হ্যাশযোগ্য) বস্তু ব্যবহার করা যেতে পারে।
  • যখন আপনি কোডের পাঠককে সংকেত দিতে চান যে that মান "হিমায়িত"।

আনপ্যাকিং: বৈশিষ্ট্য যা পরিবর্তন করে যে আপনি কিভাবে Python লিখবেন

Python
nome, anni = ("Ada", 36)
nome   # 'Ada'
anni   # 36

এটি বন্ধনী ছাড়াও কাজ করে (এটি কমা যা সংজ্ঞায়িত করে টিপল):

Python
x, y = 10, 20

এবং এটি একটি অস্থায়ী পরিবর্তনশীল ছাড়া অদলবদল করার অনুমতি দেয়, একটি বিশুদ্ধ পাইথন বাগধারা:

Python
a, b = 1, 2
a, b = b, a
a, b   # (2, 1)

* দিয়ে আনপ্যাক করা হচ্ছে (বাকি)

যখন আপনি ক্যাপচার করতে চান "প্রথম এবং বাকি" বা "প্রথম, শেষ, মাঝখানে":

Python
primo, *resto = [1, 2, 3, 4, 5]
primo   # 1
resto   # [2, 3, 4, 5]

primo, *centro, ultimo = [1, 2, 3, 4, 5]
centro  # [2, 3, 4]

একে তারকাযুক্ত অ্যাসাইনমেন্ট বলা হয়: তারকা যা কিছু সংগ্রহ করে তালিকায় রয়ে গেছে।

একক-উপাদান টিপল ফাঁদ

(42) একটি টিপল নয়, এটি বন্ধনীর ভিতরে 42 নম্বর। করা a একক-উপাদান টিপল আপনার কমা প্রয়োজন: (42,)। তা ছাড়া কোনো অপারেশন একটি বিভ্রান্তিকর উপায়ে ব্যর্থ হয়।

Python
x = (42)
type(x)   # <class 'int'>
x = (42,)
type(x)   # <class 'tuple'>

একক উপাদান tuples

শুধুমাত্র একটি উপাদান সম্বলিত একটি টিপল তৈরি করতে, একা বন্ধনী যথেষ্ট নয়: আপনাকে অবশ্যই একটি ট্রেলিং কমা সন্নিবেশ করতে হবে, উদাহরণস্বরূপ t = (42,)৷ কমা ছাড়া, পাইথন বন্ধনীকে সহজ গাণিতিক গোষ্ঠী হিসাবে বিবেচনা করে, একটি সাধারণ পূর্ণসংখ্যা 42 তৈরি করে।

চেষ্টা করে দেখুন

ব্যায়াম#python.m3.l2.e1
প্রচেষ্টা: 0লোড হচ্ছে...

প্রদত্ত `a = 1` এবং `b = 2`, তাদের মানগুলিকে এক লাইনে অদলবদল করুন (টুপল আনপ্যাকিং) এবং টিপল (a, b) মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

a, b = b, a

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#python.m3.l2.e2
প্রচেষ্টা: 0লোড হচ্ছে...

তালিকা থেকে `voti = [7, 5, 8, 6, 9]`, প্রথম গ্রেডটিকে `primo`-এ, শেষটি `আল্টিমো` এবং অবশিষ্টগুলোকে `সেন্ট্রো`-এ বের করতে আনপ্যাকিং ব্যবহার করুন। মূল্যায়ন করুন `(প্রিমো, সেন্ট্রো, আল্টিমো)`।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

primo, *centro, ultimo = voti → primo=7, centro=[5,8,6], ultimo=9.

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#python.m3.l2.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Given the tuple `point = (4, 5, 6)`, use unpacking to assign the three values to the variables `x`, `y`, `z` respectively. Then, calculate the sum of `x`, `y`, and `z` and store it in `coord_sum`. Finally, evaluate `coord_sum`.

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি একক বিবৃতিতে তিনটি স্থানাঙ্ক বের করতে x, y, z = পয়েন্ট ব্যবহার করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ