مشخصات مقاله
-
701
-
0.0
-
3427
-
0
-
0
آموزش tuples در پایتون
آموزش دنباله ها و چندتایی ها (tuples) در زبان برنامه نویسی پایتون
دیدیم که لیست ها و رشته ها خصیصه های مشترک بسیاری داشتند، مانند عملیات اندیس گذاری و بخش بندی (slicing) . آنها دو مثال از انواع داده دنباله هستند
از آنجایی که پایتون یک زبان در حال تحول است، سایر انواع داده دنباله ممکن است اضافه شود. همچنین یک نوع داده دنباله استاندارد دیگر به نام چندتایی وجود دارد. یک چندتایی شامل تعدادی مقدار است که به وسیله ویرگول از هم جدا شده اند. برای مثال:
>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Tuples may be nested:
... u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
>>> # Tuples are immutable:
... t[0] = 88888
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
>>> # but they can contain mutable objects:
... v = ([1, 2, 3], [3, 2, 1])
>>> v
([1, 2, 3], [3, 2, 1])
همانطور که می بینید ، چندتایی ها در خروجی همیشه در پرانتز قرار دارند، بنابراین چندتایی های تو در تو به درستی تفسیر می شوند. آنها ممکن است در ورودی با یا بدون پرانتز باشند، هرچند اغلب، پرانتز ها ضروری هستند (اگر چندتایی بخشی از یک عبارت بزرگتر باشد). امکان تخصیص به عناصر یک چندتایی به صورت مجزا وجود ندارد، هرچند می توان چندتایی هایی ساخت که شامل اشیای قابل تغییر باشند، مانند لیست ها.
. اگرچه ممکن است چندتایی ها شبیه لیست ها به نظر برسند، اما اغلب در موقعیت های مختلف و برای اهداف متفاوتی از چندتایی ها استفاده می شود. چندتایی ها غیر قابل تغییر هستند، و معمولا در بر دارنده دنباله ای از عناصر نا همگن هستند که به وسیله باز کردن (unpacking- در ادامه این بخش می بینیم) یا اندیس گذاری (یا حتی توسط ویژگی در صورت namedtuples) قابل دسترسی هستند.
لیست ها قابل تغییر هستند، و عناصر آنها معمولا همگن هستند و با گردش و تکرار روی لیست قابل دسترسی هستند. مشکل ویژه ساختار چندتایی ها در شرایطی است که شامل صفر یا یک عنصر هستند. نحوه نگارش، تعدادی جایگزین برای اصلاح این مشکل دارد. چندتایی های خالی به وسیله یک جفت پرانتز خالی ساخته می شوند. چندتایی با یک عنصر ، به وسیله یک مقدار و یک ویرگول پس از آن ساخته می شود ( قرار دادن یک مقدار در پرانتز کارآمد نیست). زشت اما موثر. برای مثال:
>>> empty = ()
>>> singleton = 'hello', # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)
عبارت t = 12345, 54321, 'hello!' یک مثال از بسته بندی چندتایی است. مقادیر 12345 ، 54321 و 'hello!' با هم در یک چندتایی بسته بندی شده اند. عملیات عکس آن نیز امکان پذیر است:
>>> x, y, z = t
این باز کردن دنباله (sequence unpacking) نام دارد و برای هر دنباله در سمت راست (right-hand side) کار می کند. باز کردن دنباله نیازمند این است که به تعداد عناصر موجود در دنباله، متغیر در سمت چپ علامت مساوی باشد. توجه کنید که تخصیص های متعدد فقط ترکیبی از بسته بندی چندتایی و باز کردن دنباله است.