آرایه‌های چند بعدی

Negative Index

seq = “Welcome to Nikparvar Python Class”

Index number:      0           6         14           22             32

Index number:    -32        -26       -18           -11               -1

در پایتون برای فراخوانی یک رشته از انتها، از ایندکس منفی استفاده می‌کنیم!

مثل seq[-1] که برای حرف s می‌باشد و حرف اوّل از انتهای عبارت است.

Check an Element in Array

برای کنترل وجود یا نبود یک عنصر در یک آرایه از in و not in به‌صورت زیر بهره می‌گیریم. (دقّت کنید که Case Sensitive است)

seq = “Welcome to Nikparvar Python Class”

“com” in seq –> True

“com” not in seq –> False

“wel” in seq –> False

“Wel” not in seq –> False

2D Array (Matrix)

آرایه‌ی دوبعدی یا ماتریس را به شکل زیر تعریف می‌کنیم:

arr = [

            [  1 ,   2 ,   3  ] ,

            [  4 ,   5 ,   6  ] ,

            [  7 ,   8 ,   9  ]

          ]

معادل است با

arr = [  [  1,   2 ,   3  ] ,   [  4 ,   5 ,   6  ] ,   [  7 ,   8 ,   9  ]  ]

arr = [               0                  1                    2

    0  –>    [   ‘Ali’           ,   ‘Javad’      ,   ‘Akbar’       ] ,

    1  –>    [   ‘Hosain’   ,   ‘Jafar’       ,   ‘Ahmad’     ] ,

    2  –>    [   ‘Asghar’   ,   ‘Mahdi     ,   ‘Sadegh’    ]

         ]

برای دسترسی به عضو ‘Ahmad‘ از لیست بالا، با دستور arr[1][2] این کار را انجام می‌دهیم. این دستور اشاره به عضو دوم arr، یعنی [‘Hosain’, ‘Jafar’, ‘Ahmad’]، سپس عضو سوم آن دارد.

2D or 3D Arrays (Matrix)

arr = [               0                  1                    2

    0  –>    [   ‘Ali’           ,   ‘Javad’      ,   ‘Akbar’       ] ,

    1  –>    [   ‘Hosain’   ,   ‘Jafar’       ,   ‘Ahmad’     ] ,

    2  –>    [   ‘Asghar’   ,   ‘Mahdi     ,   ‘Sadegh’    ]

         ]

برای صدا زدن حروف Ahmad‘، می‌توان طبق قانون رشته‌ها، آن را سه‌بعدی در نظر گرفت و با دستور arr[1][2][0]، حرف اوّل رشته یعنی ‘A‘ را استخراج نمود.

3D Array (Matrix)

arr = [                  0                  1                    2

    0  –>   [   [   ‘Ali’           ,   ‘Javad’      ,   ‘Akbar’       ]   ] ,

    1  –>   [   [   ‘Hosain’   ,   ‘Jafar’       ,   ‘Ahmad’     ]   ] ,

    2  –>   [   [   ‘Asghar’   ,   ‘Mahdi     ,   ‘Sadegh’    ]   ]

         ]

با زدن دستور arr[2][3][0]، مانند قسمت بالا می‌شود ایندکس اوّلِ [1, 2, 3]، یعنی ‘0‘ را استخراج نمود.

توجّه: در واقع رشته در آرایه‌ی دوبعدی و آرایه‌ی سه‌بعدی شبیه هم هستند.

با این روش می‌توان آرایه‌های چندبعدی را ساخت، و با نگهداری داده‌ها در آن، هر موقع که نیاز به فراخوانی اعضای آن بود از همین قاعده استفاده نمود؛ حتّی می‌شود برای دیدن یا مرور کلّ اعضا از حلقه‌های تودرتو بهره برد و ماتریس را شکیل چاپ نمود. مثال:

arr = [ [ 1, 2, 3 ], [ 4, 5, 6, ], [ 7, 8, 9 ] ]

forin range( len( arr ) ):

        for j in range( len( arr[ i ] ) ):

                print( arr[i][j], end=’   ‘ )

-> 1    2    3

    4    5    6

    7    8    9

Practice 6

برنامه‌ای بنویسید که تعداد دانش‌آموزان را بپرسد، سپس نام و نام خانوادگی، همچنین 12 نمره‌ی هرکدام را بگیرد و در یک آرایه قرار دهد.

جمع نمرات و معدّل هر دانش‌آموز را پس از دریافت نمراتش محاسبه نموده و در انتهای آرایه‌اش اضافه کند.

کارنامه دانش‌آموز را چاپ نماید.