Лабораторная работа №5. Списки
Массивы (списки) в Python — это определенное количество элементов одного типа, которые имеют общее имя, и каждый элемент имеет свой индекс — порядковый номер.
Часто для работы с массивами используются списки.
Список (list) — это структура данных для хранения объектов различных типов. Списки являются упорядоченными последовательностями, которые состоят из различных типов данных, заключающихся в квадратные скобки [] и отделяющиеся друг от друга с помощью запятой.
Создание списков нa Python
Создать список можно несколькими способами
- Получение списка через присваивание конкретных значений
Так выглядит в коде Руthon пустой список:
l=[] # Пустой список
#Примеры создания списков со значениями:
l=[5,75,-4, 7, -S1]# список целых чисел
l=[1.13,5.34,12.63,4.6,34.0,12.8]# список из вещественных чисел
l=["оля", "Владимир", "Михаил", "Дарья"]# список из строк
l=["Москва","Иванов", 12, 124] # смешанный список
l=[[0, 0, 0], [1, 0, 11], [1, 1, 17]] # список, состоящий из списков
l=['5', 'pt', ['python'], 2] # список из разных значений и списка
Списки можно складывать (конкатенировать) с помощью знака «+»:
l=[1,3]1+[4,23]+[5]
print('l=[1,3]+[4,23]+[5] =',l)
Результат: l=[1,3]+[4,23]+[5] = [1, 3, 4, 23, 5]
- Создание списка при помощи функции Split()
Используя функцию split в Python можно получить из строки список.
stroka="Здравствуй, Дедушка Мороз" #stroka - строка
lst=stroka.split(",") #lst-список
print('stroka = ', stroka)
print ('lst=stroka.split(","):',lst)
Результат:
stroka = Здравствуй, Дедушка Мороз
lst=stroka.split(","): ['Здравствуй', 'Дедушка Mopoз']
- Генераторы списков
В Python создать список можно также при помощи генераторов.
Первый способ
Сложение одинаковых списков заменяется умножением: Список из 10 элементов, заполненный единицами
l =[1]*10
Второй способ
Пример 1
l=[i for i in range(10)]
Пример 2
c = [c * 3 for c in 'list']
print(с) #['lll','iii','sss','ttt']
Примеры использования генераторов списка
Пример 1
Заполнить список квадратами чисел от 0 до 9, используя генератор списка.
Решение:
l = [i*i for i in range(10)]
Пример 2
Заполнить список числами, где каждое последующее число больше на 2.
l = [2*i+1 for i in range(10)]
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности.
random.randint(A, В) - случайное целое число N, А <= N <= B
random.random() - случайное число от 0 до 1.
Случайные числа в списке:
10 чисел, сгенерированных случайным образом в диапазоне (10,80)
from random import randint
l = [randint(10,80) for x in range(10)]
10 чисел, сгенерированных случайным образом в диапазоне (0,1)
import random
l = [rrandom() for i in range(10)]
- Ввод списка (массива) в языке Python
Для ввода элементов списка используется цикл for и команда range():
for i in range(N):
x[i] = int(input())
Более простой вариант ввода списка:
x = [int(input()) for i in range(N)]
- Вывод списка (массива)
Вывод целого списка (массива):
print(L)
Поэлементный вывод списка (массива)
for i in range(N):
print(L[i], end=" ")
Задания для самостоятельной работы
- Из массива Х длиной n, среди элементов которого есть положительные, отрицательные и равные нулю, сформировать новый массив У, взяв в него только те элементы из Х, которые больше по модулю заданного числа М. Вывести на экран число М, данный и полученные массивы.
- В массиве целых чисел все отрицательные элементы заменить на положительные. Вывести исходный массив и полученный.
- Найдите количество положительных и количество отрицательных чисел в списке.
- Выведите значение наименьшего нечетного элемента списка, а если в списке нет нечетных элементов - выведите число 0.
- Выведите элементы данного списка в обратном порядке, не изменяя сам список.
- Напишите функцию, которая принимает два списка и возвращает новый список, в котором каждый элемент представляет сумму соответствующих элементов обоих списков.