Python. Робота з масивами

Опорна вправа: Використання випадкових чисел для створення масиву

  1. Підключити модуль генерування випадкових чисел: import random
  2. Згенерувати випадкове ціле число: random.randint(початок інтервалу, кінець інтервалу):
  3. Згенерувати випадкове дійсне число: random.uniform (початок, кінець)
  4. Згенерувати випадкове випадкове число з інтервалу (0, 1): random.random()

1. Заповнити масив цілими числами з проміжку (-10, 20). Ті елементи, що кратні 5, замінити числом 100

import random
mas=[]
n=10
print("Згенеровано масив:")
for i in range(n):
     mas.append(random.randint(-10,20))
     print(mas[i],end=" ") 
for i in range(n):
      if mas[i]%5==0:
            mas[i]=100
print()
print("Змінений масив:")
for i in range(n):
     print(mas[i],end=" ")   

Згенеровано масив:
2 5 -2 6 6 -6 15 -9 3 13 
Змінений масив:
2 100 -2 6 6 -6 100 -9 3 13 

2. Даний масив розмірності n*m заповняється випадковими числами.

1)

n=3
m=3
import random
data = [[random.randint(1,7) for i in range(0,n)] for j in range(0,m)]
for i in range(n):
    print(' '.join(map(str,data[i])))

Даний код демонструє створення двовимірної матриці з розмірністю 3 × 3 за допомогою генератора двовимірного списку Python. Елементами цієї числової послідовності стали цифрові значення з методів range. Змінні i та j покроково збільшуються в циклах на одиницю. Масив заповнюється псевдовипадковими цілими числами з проміжку (1,7). Функція print служить для візуального відображення згенерованого набору даних на екран комп'ютера.

5 4 5
1 7 2
6 1 1

2) Використовується функція користувача

import random
def stvmas():
      n=4
      m=5
      b=[]
      for i in range(n):
            b.append([])
            for j in range(m):
                  b[i].append(random.randint(1, 5))                
      print("Дано масив")
      for i in range(n):
            print(' '.join(map(str,b[i])))
stvmas()

Практикум розв'язування задач

Вправа 10. У даному масиві 3*4 замінити елементи, що кратні 3, числом 100. Даний масив та змінений масив вивести на екран

b=[[77, 32, 23 ,3], [44, 21, 23, 9], [80, 15, 22, 4]] 
print("Дано масив")
for i in range(3):
    print(' '.join(map(str,b[i])))
print("Змінено елементи масиву, кратні 3 числом 100")
for i in range(3):
    for j in range(4):
        if b[i][j]%3==0:
            b[i][j]=100
for i in range(3):
    print(' '.join(map(str,b[i])))      

Вправа 11. У даному масиві від'ємні елементи збільшити на 100  інакше зменшити на 100.

b=[[177, -32, 23 ,3], [-44, 210, 23, 9], [180, -15, 22, 4]] 
print("Дано масив")
for i in range(3):
    print(' '.join(map(str,b[i])))
print("Змінено елементи масиву, кратні 3 числом 100")
for i in range(3):
    for j in range(4):
        if b[i][j]<0:
            b[i][j]=b[i][j]+100
        else:
           b[i][j]=b[i][j]-100 
for i in range(3):
    print(' '.join(map(str,b[i])))   

12. У даному масиву 3*3 поміняти місцями рядки: перший та останній.

a=[[1,2,3],[4,5,6],[7,8,9]]
print("Дано масив:")
for i in a:
    for j in i:
        print(j,end=" ")
    print()
for j in range(3):
    p=a[0][j]
    a[0][j]=a[2][j]
    a[2][j]=p
print ("Змінений масив: ")
for i in a:
    for j in i:
        print(j,end=" ")
    print()

Дано масив:
1 2 3 
4 5 6 
7 8 9 

Змінений масив: 
7 8 9 
4 5 6 
1 2 3 

Завдання для закріплення вивченого. 

У масиві 6*5 різні числа: додатні, від'ємні і число 0. Підрахувати кількість таких чисел і зробити їм заміну довільними числами. Знайти максимальний елемент та його індекси у вже зміненому масиві. Вивести елементи рядка з максимальним елементом, та стовпчик, у якому він розміщений.

Задачі.

1. У даній дійсній матриці розмірністю 6*9 знайти суму елементів рядка, що містить найбільний елемент. Вважається, що такий елемент єдиний.

2. Дано матрицю M*N. У цій таблиці поміняти місцями елементи:

  • Першого і останнього рядків
  • Першого і останнього стовпчика
  • k-того та l-того стовпчика

3. Дано квадратну матрицю розмірності n.

  • Надрукувати індекси елементів, розташованих на бічній діагоналі
  • Суму елементів бічної діагоналі
  • Елементи бічної діагоналі в порядку зростання

4. Знайти різницю між найбільшим і найменшим елементом головної діагоналі квадратної матриці розмірністю n.

5. Таблицю футбольного чемпіонату задано квадратною матрицею порядку n, в якій усі елементи, що розміщені по головній діагоналі, дорівнюють 0, а кожний елемент, що не належить головній діагоналі, дорівнює 2, 1 або 0 очок, що набрані в грі: 2 - виграш, 1 - нічия, 0 - програш. Визначити:

  • Кількість команд, які мають більше перемог, ніж поразок
  • Номери команд, що не мають поразок
  • Чи є хоча б одна команда, що виграла більше половини ігор

6. Дано натуральне число n і дійсні елементи квадратної матриці порядку n. Вважатимемо рядок матриці позначеним, якщо елемент цього рядка, що належить головній діагоналі, додатний. Для кожного позначеного рядка обчислити:

  • Максимальний елемент
  • Різницю між першим і останнім елементпми
  • Середнє арифметичне елементів

7. Дано квадратну матрицю розмірності n (n - парне число). Вважатимемо, що ця матриця розбита:

  • навпіл по вертикалі;
  • навпіл по горизонтаді;
  • навпіл по головній діагоналі (діагональні елементи не беруться до уваги в розв'язках).

Знайти:

  • Середнє арифметичне кожної з частин
  • Максимальне значення кожної з частин
  • Мінімальне значення кожної з частин

8. Створити масив b із найбільших елементів кожного рядка даного масиву a(4*8). Визначити суму елементів даного масиву a, розташованих по зовнішньому контуру масиву.

9. Дано два масиви a(m*n) і b(m*n). Вивести масив С, елементи  якого дорівнюють сумі відповідних елементів даних масивів.

10. У даному масиві знайти, скільки разів зустрічається даний елемент 

a=[[1,2,3],[2,4,5],[1,2,5]]
print("Дано масив")
for i in range(3):
    print(' '.join(map(str,a[i])))
k=int(input("Яке число шукати в масиві? "))
n=0
for i in range(3):
    for j in range(3):
        if a[i][j]==k:
            n=n+1
print("У даному масиві число ",k,"зустрічається ",n,"разів")

11. Дано масив 3*3. Елементами масиву є числа, що не перевищують 5. Підрахувати скільки разів у масиві зустрічаються число 0, 1, 2, 3, 4 та 5.

a=[[1,2,3],[2,4,5],[1,2,5]]
print("Дано масив:")
for i in range(3):
    print(' '.join(map(str,a[i])))
n0=0
n1=0
n2=0
n3=0
n4=0
n5=0
for i in range(3):
    for j in range(3):
        if a[i][j] == 0:
            n0=n0+1
        elif a[i][j] == 1:
            n1=n1+1
        elif a[i][j] == 2:
            n2=n2+1
        elif a[i][j] == 3:
            n3=n3+1
        elif a[i][j] == 4:
            n4=n4+1
        elif a[i][j] == 5:
            n5=n5+1    
print('У даному масиві зустрічається:')
print("число 0 - ",n0, "разів")
print("число 1 - ",n1, "разів")
print("число 2 - ",n2, "разів")
print("число 3 - ",n3, "разів")
print("число 4 - ",n4, "разів")
print("число 5 - ",n5, "разів")

12. Дано масив 5*5 цілих чисел. Підрахувати кількість "чарівних квадратів" в масиві ("чарівний квадрат" - це 4 елементи по сусідству: поточний елемент, елементи справа, внизу та справа внизу із сумою чисел 25).

a=[[6,2,3,9,9],[8,9,0,4,5],[1,9,7,2,5],[8,2,3,9,7],[8,5,2,4,5]]
print("Дано масив")
for i in range(5):
    print(' '.join(map(str,a[i])))
k=0
for i in range(4):
    for j in range(4):
        s=a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]
        if s == 25:
            k=k+1      
print('У даному масиві чарівних квадратів - ',k)

Виконати підсумковий тест

Перейти до теми 3                                                                       Перейти до теми 5