ماتریس های پراکنده در زبان پایتون چیست ؟ توضیح دهید.
ماتریس های پراکنده در زبان پایتون چیست ؟ توضیح دهید.
ماتریس های پراکنده در زبان پایتون چیست ؟ توضیح دهید.
در بخش 8-14 ،ما از لیستی از لیستها براي نشان دادن یـک مـاتریس اسـتفاده کـردیم. ایـن براي ماتریسی با مقادیر اکثراً غیرصفر انتخاب خوبی است، اما ماتریس پراکندهاي نظیر مـاتریس صـفحۀ بعد را مجسم کنید:
در نحوة نمایش به صورت لیست، تعداد زیادي 0 به کار رفته است:
matrix = [ [0,0,0,1,0],
[0,0,0,0,0],
[0,2,0,0,0],
[0,0,0,0,0],
[0,0,0,3,0] ]
چارة دیگر، استفاده از یک دیکشنري است، براي کلیدها میتوانیم از چندتاییهـایی کـه شـامل تعداد سطر و ستونها هستند، استفاده کنیم. در اینجا نمـایش همـان مـاتریس را در قالـب دیکشـنري مشاهده میکنید:
matrix = {(0,3): 1, (2, 1): 2, (4, 3): 3}
ما تنها به سه جفت کلید-مقدار نیاز داریم که هر کدام به یکی از عناصر غیرصفر ماتریس اشـاره میکنند. هر کلید یک چندتایی است و هر مقدار یک عدد صحیح است. جهت دستیابی به عنصري از ماتریس میتوانیم از عملگر [] استفاده کنیم:
matrix[0,3]
1
توجه کنید که نحوة نگارش، براي نمایش ماتریسها در قالب دیکشنري با نحـوة نگـارش بـراي نشان دادن آنها در قالب لیستهاي تودرتو یکسان نیست. به جاي دو اندیس صحیح، ما از یـک انـدیس که یک چندتایی از اعداد صحیح است، استفاده میکنیم. یک مشکل وجود دارد. اگر عضوي را مشخص کنیم که مقدار آن 0 باشـد پیغـام خطـا دریافـت میکنیم، زیرا هیچ قلم دادهاي شامل آن کلید در دیکشنري وجود ندارد:
>> matrix[1, 3]
KeyError: (1, 3)
متد get این مشکل را حل میکند:
>> matrix.get((0,3), 0)
1
آرگومان اول کلید است و آرگومان دوم مقداري است که get در صورت عـدم وجـود کلیـد در دیکشنري باید برگرداند:
>> matrix.get((1,3), 0)
0
متد get معناي دسترسی به یک ماتریس پراکنده را کاملاً بهبود مـیبخشـد امـا دربـارة نحـوة نگارش آن شرمندهایم!
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید