Вы находитесь на странице: 1из 12

ЛАБОРАТОРНАЯ РАБОТА

(II СЕМЕСТР)

Тема 2. Списки в Python

2.1 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ОФОРМЛЕНИЮ ЛР


(СМ. ЛАБОРАТОРНАЯ РАБОТА №1)

2.2 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛР


Одномерный массив представляет собой фиксированное количество однотипных
элементов, имеющих общее имя и занимающих непрерывную область в памяти. Каждый
элемент массива характеризуется своим значением и индексом (иначе – порядковым номером).
В языке Python нет такой структуры как «массив». Вместо этого для хранения группы
однотипных объектов используют списки.
Список в Python – это набор элементов, каждый из которых имеет свой номер (индекс).
Нумерация всегда начинается с нуля, второй по счёту элемент имеет номер 1 и т.д. В отличие от
обычных массивов в большинстве языков программирования список – это динамическая
структура, его размер можно изменять во время выполнения программы (удалять и добавлять
элементы), при этом все операции по управлению памятью берёт на себя транслятор.
Списки объявляются в квадратных скобках [].
Список можно создать перечислением элементов через запятую в квадратных скобках,
например, так:
z = [3,7,4,2] # Создание списка

Вторая строка этой таблицы списка python - индекс элемента списка.


В python 3 списки хранят упорядоченный набор элементов, которые могут быть разных
типов. В списке, указанном выше элементы имеют один и тот же тип int. Не обязательно все
элементы списка должны быть одного типа, как показано выше.
# Создание списка с разными типам данных
B = [3, True, 'Python', 2.0]
Этот список содержит int, bool, string и float.
В дальнейшем будем использовать списки типа int.

Доступ к элементам в списка

Каждый элемент списка имеет присвоенный ему индекс. Важно отметить, в python
индекс первого элемента в списке – 0.
Пример:
z = [3, 7, 4, 2] # создаем список
# обращение к первому элементу списка с индексом 0
print(z[0])
# элемент с индексом 0
3
Списки в Python изменяемы. Это означает, что после создания списка можно обновить
отдельные элементы в списке.
Пример:
z = [3, 7, 4, 2] # Создание списка
# Изменяем элемент с индексом 1 на число 10
z[1] = 10
print(z)

[3, 10, 4, 2]

Примеры списка

A = [1,3,4,23,5]
Списки можно «складывать» с помощью знака «+», например, показанный выше список
можно было построить так:
A = [1,3] + [4,23] + [5]
Сложение одинаковых списков заменяется умножением «*». Вот так создаётся список из
10 элементов, заполненный нулями:
A = [0]*10
В более сложных случаях используют генераторы списков – выражения, напоминающие
цикл, с помощью которых заполняются элементы вновь созданного списка:
A = [ i for i in range(10) ]
Как вы знаете, цикл for i in range(10) перебирает все значения i от 0 до 9. Выражение
перед словом for (в данном случае – i) – это то, что записывается в очередной элемент списка
для каждого i. В приведённом примере список заполняется значениями, которые
последовательно принимает переменная i, то есть получим такой список:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
То же самое можно получить, если использовать функцию list для того, чтобы создать
список из данных, которые получаются с помощью функции range:
A = list ( range(10) )
Для заполнения списка квадратами этих чисел можно использовать такой генератор:
A =[ i*i for i in range(10)]
В конце записи генератора можно добавить условие отбора. В этом случае в список
включаются лишь те из элементов, перебираемых в цикле, которые удовлетворяют этому
условию. Например следующий генератор составляет список из всех простых чисел в
диапазоне от 0 до 99:
Часто в тестовых и учебных программах массив заполняют случайными числами. Это
тоже можно сделать с помощью генератора:
from random import randint
A = [ randint(20,100) for x in range(10)]
Здесь создается массив из 10 элементов и заполняется случайными числами из отрезка
[20,100].
Для этого используется функция randint, которая импортируется из модуля random.
Длина списка (количество элементов в нём) определяется с помощью функции len:
N = len(A)

Функции и методы списка

Для списков доступны основные встроенные функции, а также методы списков. Пусть у
нас есть два списка: A = [1,3,4,23,5] и L = [14,25]. Тогда имеем следующие
методы.

Таблица методов списков


Метод Что делает
A.append(x) Добавляет элемент x в конец списка
A.extend(L) Расширяет список А, добавляя в конец все элементы списка L
A.insert(i,x) Вставляет после i-го элемента значение x
A.remove(x) Удаляет первый элемент в списке, имеющий значение x
Удаляет i–й элемент в списке и возвращает его. Если индекс не
A.pop(i)
указан, удаляет последний элемент
A.index(x) Возвращает индекс первого элемента x
A.count(x) Возвращает количество элементов со значением x
A.sort(x) Сортирует список
A.reverse() Разворачивает список
A.copy() Поверхностная копия списка
A.clear() Очищает список

Примеры.

Взятие элемента по индексу

Как и других языках программирования, взятие по индексу имеет вид:

Нумерация элементов начинается с нуля. При попытке доступа к несуществующему


индексу возникает исключение IndexError.
В Python также поддерживается отрицательные индексы, при этом нумерации идет с
конца, например:
Срезы

В Python, кроме индексов, существуют еще и срезы.


Item[START:STOP:STEP] – берет срез от номера START, до STOP (не включая его), с
шагом STEP. По умолчанию START=0, STOP = длине объекта, STEP=1. Соответственно, какие-
нибудь (а возможно и все) параметры могут быть опущены.

Также все эти параметры могут быть и отрицательными.

В последнем примере получится пустой список, так как START<STOP, а STEP


отрицательный. То же самое произойдет, если диапазон значений окажется за пределами
объекта:

Задание элементов массива с помощью генератора списка


Если никакие подсказки нам не нужны, создать массив из N элементов и ввести их
значения можно с помощью генератора списка:
A = [ int(input()) for i in range(N) ]
Здесь на каждом шаге цикла строка, введённая пользователем, преобразуется в целое
число с помощью функции int, и это число добавляется к массиву.

Поиск в массиве

Вариант 1. Используем цикл while:

import random # подключение библиотеки


from random import randint
n=10; x=5
mas = [randint(1,10) for i in range(n)] # инициализируем массив
print(mas)
i = 0
while i < n and mas[i] != x: # если элемент не равен
i += 1
if i < n:
print ( "mas[", i, "]=", x, sep = "" )
else:
print ( "Не нашли!" )

Результат:

Вариант 2. Используем цикл for:

import random
from random import randint
n=10;x=5
mas = [randint(1,10) for i in range(n)]
print(mas)
nomer = -1
for i in range (n):
if mas[i] == x:
print ( "mas[", i, "]=", x, sep = "" )
break
else:
print ( "Не нашли!" )

Результат:

Поиск минимального или максимального элемента

Пример:
import random
from random import randint
n=10
mas = [randint(1,10) for i in range(n)]
print(mas)
MaxEl = mas[0]
for i in range(1,n):
if mas[i] > MaxEl:
MaxEl = mas[i]
print (MaxEl)

Результат:

В переменной MaxEl сохранится максимальный элемент массива.

Для поиска максимального и минимального элементов массива в Python есть


собственные функции max и min:

Пример:
import random
from random import randint
n=10
mas = [randint(1,10) for i in range(n)]
print(mas)
MaxEl = max (mas)
print ( MaxEl )

Результат:

Сортировка массива в Python

Соpтиpовка методом «пyзыpька».

Пример:

import random
from random import randint
n=10
mas = [randint(1,10) for i in range(n)]
print(" до сортировки ")
print(mas)
for i in range(n-1):
for j in range(n-2, i-1 ,-1):
if mas[j+1] < mas[j]:
mas[j], mas[j+1] = mas[j+1], mas[j]
for i in range(n):
print(mas[i],sep="")
print(" после сортировки ")
print(mas)

Результат:

Соpтиpовка с помощью встроенных функций.

sorted (mas1) — встроенная функция для сортировки массивов (списков);


Пример: Пусть дан список A=[23,3,1,6,5], тогда используя функцию sorted можно
получить отсортированный список:
B=sorted(A)
B=[1,3,5,6,23].

Пример:

import random
from random import randint
n=10
mas = [randint(1,10) for i in range(n)]
print(" до сортировки ")
print(mas)
print(" после сортировки ")
print(sorted(mas))

Результат:

2.3 ПРИМЕР ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ


Примечания:
Примечание 1. Комментарии начинаются со знака #.
Примечание 2. Для того, чтобы значения выводились с новой строке, нужно в качестве
параметра sep передать строку, состоящую из специального символа новой строки, которая
задается так: print(a, b, sep = '\n').
Можно и по другому:

Примечание 3. В комментариях следует указать автора, т.е. кто выполнил (свою


фамилию и номер группы). Массив можно вводить произвольно, т.е. вручную, с помощью
генератора случайных чисел и т.д.

ЗАДАНИЕ 1. Пример. Составить программу для решения Задачи 1 и Задачи 2.


Вариант Задачи
Задача 1. В массиве, состоящий из 10 элементов, найти максимальный элемент и
возвести в квадрат. Результат вывести.
26.
Задача 2. В массиве найти максимальный и минимальный элемент и поменять их
местами. Вывести исходный и результирующий массивы.

Шаг 1. Запишем используемые переменные в таблицу.

Назначение переменной Имя Тип


Исходный массив A Integer
Максимальный элемент MaxEl Integer
Минимальный элемент MinEl Integer
Номер максимального элемента K1 Integer
Номер минимального элемента K2 Integer

Шаг 2. Открываем Python 3.7

Шаг 3. Переходим в окно программ


Шаг 4. Создаем программу.

Шаг 4. Приводим результат:


Задание выполнено.

1.4 ВАРИАНТЫ ДЛЯ ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ

Составить программу по своему варианту для решения задач №1 и №2. Решения могут
быть произвольными, на ваше усмотрение, так как возможности Python очень большие.

Вариант Задачи
Задание 1. Дан одномерный массив из 10 целых чисел. Найти минимальный и
максимальный элементы массива и заменить первый элемент массива суммой
1. минимального и максимального элементов.
Задание 2. Дан одномерный массив из 12 целых чисел. В массиве элементы с 4-го
по 12-й расположить подряд в порядке возрастания их модулей.
Задание 1. Дан одномерный массив из 15 действительных чисел. Найти среднее
арифметическое элементов массива и определить порядковый номер первого
2. элемента, меньшего среднего арифметического.
Задание 2. Дан одномерный массив из 10 целых чисел. В массиве вставить
элемент равный 50 перед максимальным элементом.
Задание 1. Дан одномерный массив из 15 целых чисел. Найти максимальный и
3. минимальный элементы массива и вычислить произведение их порядковых номеров.
Задание 2. Дан одномерный массив из 10 целых чисел. Вывести на экран значение и
индекс последнего отрицательного элемента массива.
Задание 1. Исходный массив содержит 15 действительных чисел. Найти среднее
арифметическое элементов массива, на которое разделить все элементы исходного
4. массива.
Задание 2. Дан одномерный массив из 10 целых чисел. Умножить на 100
максимальный элемент массива.
Задание 1. Дан одномерный массив из 15 целых чисел. Найти максимальный и
минимальный элементы массива и вычислить их произведение.
5. Задание 2. Дан одномерный массив из 10 действительных чисел. Вычислить
среднее арифметическое отрицательных элементов массива и заменить им первый
элемент исходного массива.
Задание 1. Дан одномерный массив из 15 целых чисел. Расположить в порядке
6. убывания элементы исходного массива.
Задание 2. Дан одномерный массив из 10 целых чисел. Возвести в квадрат
минимальный элемент массива.
Задание 1. В одномерном массиве, содержащем 10 целых чисел, найти сумму и
количество элементов, удовлетворяющих условию 15 < Xi < 38.
7. Задание 2. Исходный одномерный массив содержит 15 действительных чисел. В
массиве первый и последний положительные элементы переставить в начало
массива.
Задание 1. Дан одномерный массив из 15 целых чисел найти минимальный и
максимальный элементы, вычислить их сумму. Заменить первый элемент массива
8. полученной суммой.
Задание 2. Исходный одномерный массив содержит 15 действительных чисел.
Найти среднее значение элементов массива. Расположить в порядке возрастания
элементы массива.
Задание 1. Дан массив из 15 действительных чисел. Найти среднее арифметическое
элементов массива и вычислить сумму всех элементов, больших среднего
9. арифметического.
Задание 2. Дан одномерный массив из 10 целых чисел. В массив вставить по
одному произвольному элементу перед максимальным и минимальным элементами.
Задание 1. В одномерном массиве, содержащем 15 целых чисел, найти
10. максимальный, и все элементы разделить на максимальный.
Задание 2. Дан одномерный массив из 10 целых чисел. Заменить нулем элементы
массива, меньших их среднего значения.
Задание 1. Дан одномерный массив из 10 целых чисел. Вычислить сумму элементов
11. массива, не превышающих их среднего значения.
Задание 2. Дан массив из 15 действительных чисел. Все положительные элементы
переставить в начало массива.
Задание 1. Дан одномерный массив из 10 целых чисел. В массиве расположить
12. элементы в порядке возрастания их модулей.
Задание 2. Дан массив из 15 действительных чисел. Расположить в порядке
убывания первые 7 элементов массива.
Задание 1. Дан одномерный массив из 10 целых чисел. Все отрицательные элементы
массива переставить в конец массива.
13. Задание 2. Дан массив из 15 действительных чисел. Вычислить среднее
арифметическое отрицательных элементов массива. Отрицательные элементы
обнулить.
Задание 1. Дан одномерный массив из 10 целых чисел. Поменять местами
14. минимальный по модулю положительный элемент с первым элементом массива.
Задание 2. Дан массив из 15 действительных чисел. В массиве первые 6 элементов
расположить в порядке возрастания их модулей.
Задание 1. Дан одномерный массив из 10 целых чисел. Вычислить произведение
15. положительных элементов массива. Положительные элементы обнулить.
Задание 2. Дан массив из 15 действительных чисел. Вывести на экран элементы
массива, меньшие 15.
Задание 1. Дан одномерный массив из 10 целых чисел. Вычислить среднее
16. арифметическое элементов массива, превышающих число 25.
Задание 2. Дан массив из 15 действительных чисел. Возвести в квадрат
минимальный по модулю положительный элемент массива.
Задание 1. Дан одномерный массив из 10 целых чисел. Вычислить сумму
17. положительных элементов массива, меньших числа 25.
Задание 2. Дан массив из 15 действительных чисел. Поменять местами первый и
максимальный по модулю отрицательный элемент массива.
Задание 1. Дан одномерный массив из 10 целых чисел. Возвести в квадрат
18. максимальный отрицательный элемент массива.
Задание 2. Дан массив из 15 действительных чисел. Расположить в порядке
возрастания положительные элементы массива.
Задание 1. Дан одномерный массив из 10 целых чисел. Подсчитать количество
19. отрицательных элементов в массиве.
Задание 2. Дан массив из 15 действительных чисел. Расположить в порядке
возрастания с 5-го по 9-ый элемент массива.
Задание 1. Дан одномерный массив из 10 целых чисел. Вывести на экран индексы
20. отрицательных элементов массива.
Задание 2. Дан массив из 15 действительных чисел. Расположить в порядке
убывания последние 6 элементов массива.

Вам также может понравиться