23.09.2021
Тема: Способи вставлення та видалення елементів у списку чисел мовою програмування Python
Теоретична частина
Приклад запису числового списку мовою програмування Python:
list1=[2, 3, 12, 13, 22, 33],
а індекси числових елементів цього списку:
list1[0]=2
list1[1]=3
list1[2]=12
list1[3]=13
list1[4]=22
list1[5]=33
Приклад запису числового списку мовою програмування Python:
list2=[2.45, 3.005, 2.89, 7.93, 2.77, 3.996]
а індекси деяких числових елементів цього списку:
list2[4]= 2.77
list3[5]= 3.996
Числові списки або одновимірні масиви мають деякі властивості елементів
Наприклад, статистичні властивості числових списків:
1)кількість усіх елементів у списку,
2)середнє арифметичне елементів списку,
3)сума усіх елементів списку,
4)найбільший елемент списку,
5)найменший елемент списку,
6)довжина числового проміжку списку,
7)кількість додатних чисел у списку,
8)кількість від’ємних чисел у списку,
9)кількість парних елеменетів,
10)кількість непарних елементів,
11)кількість елементів у списку, які кратні 3
Наприклад, математичні властивості числових елементів списків,а саме:
1)кількість усіх елементів, які належать числовому проміжку n<list[k]<m, 2)кількість додатних парних чисел у списку,
3)кількість від’ємних непарних чисел у списку,
4)кількість парних елеменетів, які діляться на 15 націло,
5)кількість непарних елементів, які при діленні на 3 мають остачу 2,
6)кількість елементів у списку, які закінчуються на цифру 6.
Кодування деяких операцій над списками чисел в Python
list1.remove(lst1[1]) # видаляємо із списку елемент list1[1]
list1.sort(reverse=True) # сортування у порядку спадання list1
list1.sort() # сортування у порядку зростання list1
list2[2:5]=[] #зрізу списку присвоюється порожній список, ці елементи видалені
list2[0:3]=[0, 0, 0, 0] #зріз списку видаляється і присвоюється список нових 0-елементів
liist3.extend([0, 0, 0]) # вставлення елементів в кінець списку
list3.insert(1, 5) # вставлення елемента між існуючими елементами
list3.clear() # очищення списку чисел до порожнього
print('Кількість усіх елементів у списку lst3n1=', len(lst3n1))
print('Кількість елемента "57" у списку lst3n1=', lst3n1.count(23))
#print('Індекс елемента "45" у списку lst3n1=', lst3n1.index(45))
print('Cума усіх елементів у списку lst3n1=', sum(lst3n1))
print('Максимум усіх елементів у списку lst3n1=', max(lst3n1))
print('Мінімум усіх елементів у списку lst3n1=', min(lst3n1))
Cпособи кодування деяких видів генерування елементів у списках мовою програмування Python
*****************
print('Алгоритми автоматичного створення непарних чисел у масиві або списку')
print('Перший спосіб, що використовує цикл з лічильником')
lst3n1=[2*m -1 for m in range(-8, 12,1)]
**************************
print('Другий спосіб, що використовує цикл з лічильником і розгалуження')
lst3n2=[2*k+1 for k in range(100, -28,-1) if k%2==0]
print('Другий список непарних чисел у порядку спадання lst3n2=', lst3n2, type(lst3n2))
**************************
import random
print('Третій спосіб, що використовує генератор випадкових чисел, та цикл з лічильником і розгалуження')
lst3n3=[1+6*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
print('Третій список чисел у довільному порядку lst3n3=', lst3n3, type(lst3n3))
**************************
import random
print('Алгоритми автоматичного створення 3n-чисел у масиві або списку')
print('***Четвертий спосіб, що використовує функцію списку list(range(k,m,n)) з лічильником')
Number=list(range(-33,10,3))
print('Простенький список 3n-чисел in Number=', Number, type(Number))
**************************
import random
print('***П’ятий спосіб, що використовує порожній список та циклом із лічильником приєднує елементи')
n=10; S1=[]
for i in range(10):
S1.append(random.randint(-50,50)) # приєднується випадкове число у список
S1[i]=3*(2*S1[i]-1) # елемент списку перетворюється в непарне 3n-число, що кратне 3
print('Початковий список непарних 3n-чисел S1=', S1, type(S1))
*********Зразки кодувань генерування списків**************
1) list1 = list[range(0, 9,2]
2) list2 = [3+8*n for n in range(90, 60,-3)]
3) list3=[5+9*random.randint(90, 180) for n in range(1, 70,7) if n%2==1]
**************************
Практична частина
Завдання 1. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує сортування елементів списку у порядку спадання та у порядку зростання.
Реалізація 1. Сортування елементів у списку
import random
print(' Операції сортування елементів у списках lst1 ')
print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')
lst1=[3+3*random.randint(5, 55) for n in range(20, -18,-1) if n%2==1]
print('Це список 3n-чисел у довільному порядку lst1=', lst1, type(lst1))
lst1.remove(lst1[1]) # видаляємо із списку елемент lst3n[1]
print('Змінений список чисел без 2-го елементу: lst1=', lst1, type(lst1))
lst1.sort(reverse=True) # сортування у порядку спадання lst1
print('Змінений список чисел у порядку спадання lst1=', lst1, type(lst1))
lst1.sort() # сортування у порядку зростання lst1
print('Змінений список чисел у порядку зростання lst1=', lst1, type(lst1))
Протестуйте даний алгоритм декілька разів, якщо:
1) lst1=[1+2*random.randint(7, 57) for n in range(40, -10,-2) if n%2==0]
2) lst1=[3+8*random.randint(1, 99) for n in range(90, 60,-1) if n%5==2]
3) lst1=[4+7*random.randint(90, 180) for n in range(1, 60,1) if n%2==0]
Завдання 2. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує видалення та вставлення елементів у списку.
Реалізація 2. Видалення та вставлення елементів у списку
import random
print(' Операції видалення та вставлення над елементами в списках lst ')
print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')
lst2=[1+2*n*random.randint(0, 10) for n in range(40, -38,-1) if n%10==2]
print('Початковий список чисел після видалення елементів із списку', lst2)
lst2[2:5]=[] #зрізу списку присвоюється порожній список, ці елементи видалені
print('Змінений список чисел після видалення двох елементів із списку', lst2)
lst2[0:3]=[0, 0, 0, 0] #зріз списку видаляється і присвоюється список нових 0-елементів
print('Змінений список чисел після видалення і вставлення чотирьох елементів до списку', lst2)
Протестуйте даний алгоритм декілька разів, якщо:
1) lst2=[1+2*random.randint(7, 57) for n in range(40, -20,-2) if n%11==0]
2) lst2=[3+8*random.randint(1, 99) for n in range(90, 60,-3) if n%3==2]
3) lst2=[4+7*random.randint(90, 180) for n in range(1, 60,4) if n%4==1]
Завдання 3. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує вставлення елементів у списку без видалення між іншими елементами.
Реалізація 3. Вставлення елементів у списку без видалення
import random
print(' Вставлення числових елементів у списокlst1 ')
list1 = [1, 1, 1]
print(' початковий список list1=', list1)
list1.extend([0, 0, 0]) # вставлення елементів в кінець списку
print('Змінений список після вставлення чисел в кінець ', list1)
list2 = [2, 2, 2]
print(' початковий список list2=', list2)
list2.insert(1, 5) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення елемента 5 ', list2)
list3 = [3, 3, 3]
print(' початковий список list3=', list3)
list3.insert(1, [0,0,0]) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення елемента [0,0,0] =', list3)
for k in range(0,len(list1)): # цикл для вставлення елемента між існуючими елементами
list3.insert(k, list1[k]) # вставлення елемента між існуючими елементами
list3.extend([k-1, k, k+1]) # вставлення елемента в кінець списку
print ('Змінений список після циклу вставлення елемента =', list3)
print('Виявлення 8-го елемента у списку - це ', list3.pop(7))
Протестуйте даний алгоритм декілька разів, якщо:
1) list3 = list[range(0, 3,1]
2) list3 = [3+8*n for n in range(90, 60,-3) if n%3==2]
3) list3=[5+9*random.randint(90, 180) for n in range(1, 70,7) if n%2==1]
Завдання 4. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує вставлення елементів у порожній список.
import random
list2 = [4, 4, 4, 4]
print(' початковий список list2=', list2)
list2.extend([400, 4000, 40000]) # вставлення елементів в кінець списку
print('Змінений список після вставлення list2.extend([400, 4000, 40000])=', list2)
list1 = [2, 2, 2,2,2,2]
print(' Початковий список list1=', list1)
list1.insert(3,7000) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення list1.insert(3,7000)=', list1)
print('Показ елемента за його індексом list1.pop(3)=', list1.pop(3)) # показ індексу за відомим елементом списку
list3 = [2, 9, 8]
print('Початковий список list3=', list3)
list3.clear() # очищення списку чисел до порожнього
print ('Змінений список, тобто list3.clear() повне очищення списку : ', list3)
my_list = []
for k in range(0, 50, 8): #цикл для вставлення елемента у порожній список елемента
my_list.append(k) #вставлення елемента у порожній список елемента
print (' Наповнений список після циклу my_list=', my_list)
my_list.append(3) #вставлення праворуч у список елемента
print ('Змінений список вставлення елемента my_list=', my_list) # [1, 3]
my_list.remove(32) # видалення елемента 1 за першим індексом 0
print (' Змінений список після видалення елемента my_list.remove(32)=', my_list)
Протестуйте даний алгоритм декілька разів, якщо:
1) list1 = list[range(90, -9,-10]
2) list1 = [6-7*n for n in range(70, 40,-5) if n%4==2]
3) list1=[7+8*random.randint(95, 185) for n in range(42, 70,2) if n%3==0]
Завдання 5. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що обчислює статистичні властивості числових списків:
1)кількість усіх елементів,
2)середнє арифметичне елементів,
3)сума усіх елементів,
4)найбільший елемент,
5)найменший елемент,
6)довжина списку,
7)кількість додатних чисел у списку,
8)кількість від’ємних чисел у списку,
9)кількість парних елеменетів,
10)кількість непарних елементів,
11)кількість елементів у списку, які кратні 3.
Реалізація 5. Статистичні характеристики списків чисел
import random
print('Алгоритми автоматичного створення непарних чисел у масиві або списку')
print('Формульний спосіб створення списку, що використовує цикл з лічильником')
lst3n1=[3*m*((-1)**m) -1 for m in range(-29, 22, 3)]
print('Список непарних чисел у порядку зростання lst3n1=', lst3n1, type(lst3n1))
print('Кількість усіх елементів у списку lst3n1=', len(lst3n1))
print('Кількість елемента "57" у списку lst3n1=', lst3n1.count(23))
#print('Індекс елемента "45" у списку lst3n1=', lst3n1.index(45))
print('Cума усіх елементів у списку lst3n1=', sum(lst3n1))
print('Максимум усіх елементів у списку lst3n1=', max(lst3n1))
print('Мінімум усіх елементів у списку lst3n1=', min(lst3n1))
print('Довжина числового проміжку елементів у списку lst3n1=', max(lst3n1)-min(lst3n1))
print('Cереднє арифметичне списку lst3n1=', sum(lst3n1)/len(lst3n1));m=0; n=0; t=0
for k in range(0, len(lst3n1)):
if lst3n1[k]>0:
m=m+1
elif lst3n1[k]<0:
n=n+1
elif lst3n1[k]==0:
t=t+1
print('Кількість додатних чисел у списку m=',m)
print('Кількість від*ємних чисел у списку n=',n)
print('Кількість нулів у списку t=',t); m=0; n=0; t=0
for k in range(0, len(lst3n1)):
if lst3n1[k]%2==0:
m=m+1
elif lst3n1[k]%2==1:
n=n+1
elif lst3n1[k]%3==0:
t=t+1
print('Кількість парних чисел у списку m=',m)
print('Кількість непарних чисел у списку n=',n)
print('Кількість чисел, які кратні 3, у списку t=',t)
Протестуйте даний алгоритм декілька разів, якщо:
1) lst3n1 = list[range(39, -39,-5]
2) lst3n1= [4-5*n for n in range(19, 0,-1) if n%3==2]
3) lst3n1=[7+9*random.randint(75, 150) for n in range(42, 70,2) if n%3==0]
Завдання 6. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що обчислює статистичні властивості числових списків,а саме:
1)кількість усіх елементів, які належать числовому проміжку n<list[k]<m, 2)кількість додатних парних чисел у списку,
3)кількість від’ємних непарних чисел у списку,
4)кількість парних елеменетів, які діляться на 15 націло,
5)кількість непарних елементів, які при діленні на 3 мають остачу 2,
6)кількість елементів у списку, які закінчуються на цифру 6.
Реалізація 6. Властивості елементів списків
import random
print('Алгоритми автоматичного створення непарних чисел у масиві або списку')
print('Формульний спосіб створення списку, що використовує цикл з лічильником')
lst3n1=[90*m for m in range(-75, 25, 10)]
print('Список чисел у порядку зростання lst3n1=', lst3n1, type(lst3n1))
m=0; n=0; t=0; h=-100; q=200
for k in range(0, len(lst3n1)):
if (lst3n1[k]>-100)and(lst3n1[k]<200):
m=m+1
if (lst3n1[k]>0)and(abs(lst3n1[k])%2==0):
n=n+1
if (abs(lst3n1[k])%2==1)and(lst3n1[k]<0):
t=t+1
print('кількість усіх елементів, які належать числовому проміжку ',h,'<list[k]<',q, ' m=',m)
print('кількість додатних парних чисел у списку, n=',n)
print('кількість від’ємних непарних чисел у списку t=',t); m=0; n=0; t=0
for k in range(0, len(lst3n1)):
if (lst3n1[k]%2==0)and(lst3n1[k]%15==0):
m=m+1
if (lst3n1[k]%2==1)and(lst3n1[k]%3==2):
n=n+1
if abs(lst3n1[k])%10==6:
t=t+1
print('кількість парних елеменетів, які діляться на 15 націло, m=',m)
print('кількість непарних елементів, які при діленні на 3 мають остачу 2, n=',n)
print('кількість елементів у списку, які закінчуються на цифру 6, t=',t)
print('Кількість усіх елементів у списку lst3n1=', len(lst3n1))
print('Кількість елемента "4545" у списку lst3n1=', lst3n1.count(4545))
Протестуйте даний алгоритм декілька разів, якщо:
1) lst3n1= list[range(300, -390,-25]
2) lst3n1 = [7-12*n for n in range(29, 0,-1) if n%3==1]
3) lst3n1=[2+9*random.randint(95, 200) for n in range(42, 70,2) if n%3==0]
Результати виконання завдань практичної частини
надіслати на електронну адресу: vinnser@gmail.com
**********
Завдання на розвиток кмітливості та винахідливості
Додаткові завдання для самостійного вироблення умінь, навичок компетенцій учнів
Для наступних завдань записати, реалізувати програму мовою програмування та протестувати її на правильність.
Програмування з одновимірними масивами
Завдання А. Одновимірні масиви
А1. Задано одновимірний масив на 10 елементів типу випадкових цілих чисел із числового проміжку (-100;100). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який замінює елементи в заданому масиві на протилежні за знаком.
А2. Задано одновимірний масив на 5 елементів типу випадкових цілих чисел із числового інтервалу (-150; 120). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який замінює елементи в заданому масиві на квадрати.
А3. Задано одновимірний масив на 7 елементів типу випадкових цілих чисел із числового інтервалу (-950; 820). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який замінює елементи в заданому масиві на вдвічі збільшені.
А4. Задано одновимірний масив на 8 елементів типу випадкових дробових чисел із числового інтервалу (-9; 8). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує кількість додатних елементів масиву.
А5. Задано одновимірний масив на 20 елементів типу випадкових дробових чисел із числового інтервалу (-95; 80). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує кількість від´ємних елементів масиву.
А6. Задано одновимірний масив на 18 елементів типу випадкових дробових чисел із числового інтервалу (-29; 89). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує кількість додатних елементів масиву.
А7. Задано одновимірний масив на 20 елементів типу випадкових дробових чисел із числового інтервалу (-95; 80). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує кількість від´ємних елементів масиву.
А8. Задано одновимірний масив на 12 елементів типу випадкових дробових чисел із числового інтервалу (-79; 89). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує середнє арифметичне додатних елементів масиву.
А9. Задано одновимірний масив на 10 елементів типу випадкових дробових чисел із числового інтервалу (-65; 60). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує середнє арифметичне від´ємних елементів масиву.
А10. Задано одновимірний масив на 10 елементів типу випадкових дробових чисел із числового інтервалу (-65; 60). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує кількість парних від´ємних елементів масиву.
Завдання В. Одновимірні масиви
В1. Задано одновимірний масив на 17 елементів типу випадкових дробових чисел із числового інтервалу (-95; 100). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує середнє арифметичне найбільшого та найменшого від´ємних елементів масиву.
В2. Задано одновимірний масив на 18 елементів типу випадкових дробових чисел із числового інтервалу (-25; 30). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує середнє арифметичне найбільшого та найменшого додатних елементів масиву.
В3. Задано одновимірний масив на 19 елементів типу випадкових дробових чисел із числового інтервалу (-95; 90). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує квадрат різниці найбільшого та найменшого додатних елементів масиву.
В4. Задано одновимірний масив на 14 елементів типу випадкових дробових чисел із числового інтервалу (-95; 70). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує куб різниці найбільшого та найменшого від´ємних елементів масиву.
В5. Задано одновимірний масив на 22 елементи типу випадкових дробових чисел із числового інтервалу (-85; 90). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму квадратів додатних елементів масиву.
В6. Задано одновимірний масив на 15 елементів типу випадкових дробових чисел із числового інтервалу (-95; 70). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму кубів від´ємних елементів масиву.
В7. Задано одновимірний масив на 6 елементів типу випадкових дробових чисел із числового інтервалу (-95; -9). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму квадратів для трьох найбільших елементів масиву.
В8. Задано одновимірний масив на 5 елементів типу випадкових дробових чисел із числового інтервалу (-195; 0). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму кубів чотирьох найменших елементів масиву.
В9. Задано одновимірний масив на 11 елементів типу випадкових цілих чисел із числового інтервалу (-135; 120). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму квадратів трьох парних найменших елементів масиву.
В10. Задано одновимірний масив на 13 елементів типу випадкових цілих чисел із числового інтервалу (-415; 620). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який підраховує суму квадратів трьох непарних найбільших елементів масиву.
Завдання С. Одновимірні масиви
С1. Задано одновимірний масив на 19 елементів типу випадкових цілих чисел із числового інтервалу (-295; 300). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який замінює парні елементи(числа) на найбільший елемент масиву та непарні елементи(числа) масиву замінює на найменший елемент масиву.
С2. Задано одновимірний масив на 17 елементів типу випадкових цілих чисел із числового інтервалу (-285; 280). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який замінює елементи(числа) , що більші 5 і менші 100 на найбільший елемент масиву та елементи(числа) масиву , що більші -100 і менші 10, замінює на найменший елемент масиву.
С3. Задано одновимірний масив на 18 елементів типу випадкових цілих чисел із числового інтервалу (-485; 380). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму додатних елементів масиву, що мають парні індекси.
С4. Задано одновимірний масив на 16 елементів типу випадкових цілих чисел із числового інтервалу (-575; 580). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму від´ємних елементів масиву, що мають непарні індекси.
С5. Задано одновимірний масив на 31 елементів типу випадкових цілих чисел із числового інтервалу (-485; 380). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму додатних елементів масиву, що мають індекси, які при діленні на 3 дають остачу 2.
С6. Задано одновимірний масив на 24 елементів типу випадкових цілих чисел із числового інтервалу (-695; 680). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму від´ємних елементів масиву, що мають індекси, які при діленні на 5 дають остачу 3.
С7. Задано одновимірний масив на 41 елементів типу випадкових цілих чисел із числового інтервалу (-985; 980). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму квадратів додатних елементів масиву, що мають індекси, які при діленні на 4 дають остачу 2.
С8. Задано одновимірний масив на 34 елементів типу випадкових цілих чисел із числового інтервалу (-275; 180). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму від´ємних елементів масиву, що мають індекси, які при діленні на 7 дають остачу 6.
С9. Задано одновимірний масив на 50 елементів типу випадкових цілих чисел із числового інтервалу (-1085; 980). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму квадратів додатних елементів масиву, що мають індекси, які при діленні на 12 дають остачу 2.
С10. Задано одновимірний масив на 64 елементів типу випадкових цілих чисел із числового інтервалу (-1275; 1180). Створити алгоритм мовою програмування Python в середовищі програмування Thonny, який знаходить суму кубів від´ємних елементів масиву, що мають індекси, які при діленні на 9 дають остачу 8.
Немає коментарів:
Дописати коментар