Анықтама
Екі өлшемді массив (матрица) — m жол мен n бағаннан тұратын тіктөртбұрышты кесте. Python-да тізімдер тізімі (list of lists) түрінде беріледі: тізімнің әр элементі — өзі бір тізім.
arr = [[11, 22, 33], [44, 55, 66]]
print(arr[0])
print(arr[1][2])
Элементке қатынау үшін екі индекс керек: arr[i][j], мұндағы i — жол, j — баған нөмірі. Индекстеу де 0-ден басталады.
Анықтама
N×N массив жасау (генератор арқылы): a = [[0 for j in range(N)] for i in range(N)] — N жол, N баған, барлық элемент 0-ге тең массив.
N = int(input())
a = [[int(input()) for j in range(N)] for i in range(N)]
for row in a:
print(row) | Тәсіл | Код | Ерекшелігі |
| Индекс бойынша | for i in range(len(a)): for j in range(len(a[i])): | Индекс қажет болғанда (диагональ, т.б.) |
| Мән бойынша | for row in a: for elem in row: | Тек мән керек болғанда, қысқарақ |
Анықтама
Бас диагональ: i == j шартын қанағаттандыратын элементтер. Жанама диагональ: i + j == N-1 шартын қанағаттандыратын элементтер (0-индекстелген N×N массивте).
Есеп: N×N массивтің бас диагональ қосындысын табу.
S = 0
for i in range(N):
for j in range(N):
if i == j:
S += a[i][j] Жауабы: S — бас диагональдағы элементтердің қосындысы.
Деңгей: Орта Матрица шығару
Берілді: arr = [[1,2,3],[4,5,6]]
Табу керек: барлық элементтің қосындысы.
Шешуі:
Екі кіріктірілген циклмен әр элементті S-ке қосу: S = 1+2+3+4+5+6 = 21.
Жауабы: 21.
Деңгей: Қиын Әртүрлі ұзындықты жолдар
Берілді: my_list = [[11,12,5,2], [15,6,10], [12,15]]
Табу керек: бұл неге классикалық массив емес?
Шешуі:
Python тізімдер тізімінде әр ішкі тізімнің ұзындығы бөлек болуы мүмкін (мыс. 4, 3, 2 элемент) — классикалық массивте барлық жол бірдей ұзындықта болуы керек еді.
Жауабы: тізім икемді (жолдар әртүрлі ұзындықта бола алады), ал классикалық массив — қатаң тіктөртбұрышты.