Программирование на Python: список


Опубликованно 17.01.2018 02:53

Программирование на Python: список

Python – часто используемый язык программирования, простой, красивый, удобный. Работать с ним – одно удовольствие. Создавать объекты в Python (список, множество, строки, файлы) достаточно легко. Главное – понимать принцип программирования и алгоритмизации.Понятие списка

Под списком понимается сгруппированное множество, заключенное в квадратные скобки и являющееся очень гибким типом данных. Элементы разделяются запятыми. Список можно сравнить с тем же массивом в Turbo Pascal или Delphi. С точки зрения физического расположения подобное сгруппированное множество является перечнем адресов на его элементы.

Примечательно, что в Python список может одновременно содержать различные типы данных: целые и вещественные числа, строки, файлы и т. д. В других языках программирования это недопустимо.Создание списков. Как это сделать?

Самым популярным способом создать группированное множество является генератор. Таким методом определенное выражение применяется к каждому элементу списка. Принцип работы генератора можно сопоставить с циклом FOR.

Можно превратить в Python список в строку и наоборот. Для этого нужно задать тип list для выбранного строкового выражения. В итоге строка превращается в группированное множество букв, заключенных в кавычки.

Чтобы создать более сложный перечень элементов, не рекомендуется использовать генератор списков. Python предлагает организовать цикл FOR. Некоторые задачи позволяют задать список вручную, т. е. пользователь перечисляет в квадратных скобках через запятую необходимые ему данные. Методы списков

В языке Python список располагает такими приемами, которые значительно облегчают жизнь пользователю. Они называются методами. Вот перечень часть используемых приемов:List1.append (x) – метод, позволяющий добавить любой элемент в конец списка.List1.extened (list2) – добавление сгруппированного множества list2 в конец list1. Если говорить проще, то extend позволяет объединить два списка.List1.insert (i,x) – вставка любого элемента Х на позицию i. К примеру, если вставить новый объект в начале списка (а не в конце, как с методом append), то адреса всех компонентов обновятся с учетом введенной информации.List1.remove (x) – удаление компонента Х. Если таковых Х несколько, то вырезается первый из списка. Если указанный компонент не встречается в списке, то программа выдает ошибку ValueError (x not in list).List1.pop ([i]) – вырезание и возврат элемента на позиции i. Если пользователь не указывает индекс, то метод удаляет последний компонент. Квадратные скобки необходимы для того, чтобы указать на опциональность параметра, т. е. позицию можно пропустить.

List1.index (x, [start], [end]) – возвращение адреса ячейки первого элемента на промежутке от start до end. Эти параметры могут вводиться пользователем по приглашению программы. Еще нужно уточнить, что индексация начинается с 0. Т. е. адрес первого элемента равен 0, второго – 1 и т. д. К примеру, имеется список Х = [1.78487,5.575,7.364]. Тогда Х[0] = 1.78487, Х[1] = 5.575, Х[2] = 7.364.List1.count (x) – возвращение количества компонента, значение которого равняется Х. Этот метод полезен в случае, когда одинаковых элементов в списке много, и их нужно посчитать.List1.sort ([key = функция]) – организация сортировки списка. По умолчанию Python производит эту операцию по возрастанию. Однако можно написать функцию для сортировки и указать параметры, по которым будет происходить перестановка компонентов.List1.reverse () – переворачивание списка, т. е. первый элемент становится последним, следующий занимает позицию второго с конца и т. д.List1.copy () – копирование списка.

Что нужно знать при использовании методов? Они не перезаписывают список и не присваивают новое значение другой переменной. Встроенные функции для работы со списками

Облегчают жизнь пользователю и встроенные функции:Print – вывод на экран различной информации. В Python 2.7 после указанной функции не нужно брать в скобки данные, в Python 3 это делать обязательно. К примеру, в Python 2.7 функция будет выглядеть следующим образом: print «Количество мест», kolichestvo (где в кавычках указано предложение-пояснение, а через запятую – переменная). В Python 3 организация вывода заключается в следующем: print («Количество мест», kolichestvo). Отобразить на экране можно любые типы данных.Len(list1) – в Python длина списка определяет количество элементов в списке.Min – нахождение минимального компонента в списке, независимо от того, какие они по типу.

Max – вывод максимального элемента в сгруппированном множестве.Sum – суммирование чисел в списке, независимо от того, вещественные они или целые. Если в сгруппированном множестве есть строковый тип данных, то программа выдаст ошибку TypeError: unsupported operand type(s) for +: \'int\' and \'str\'.Help – вывод на экран раздела помощи по конкретному типу данных. Достаточно написать help (int) – для целых чисел, help (str) – для строкового типа данных, help (file) – для файлов, и программа выдаст справочную информацию, в которой можно найти методы, объекты и функции по необходимому разделу.Type – показывает, к какому типу относится данная переменная. Оформляется следующим образом: >>> text_str = «Привет» >>> type (text_str) >>> <type \'str\'>Оператор in. Конечно, это не функция, но с помощью него можно проверить вхождение любого элемента в указанный список.Сортировка списков

Данный язык программирования предоставляет пользователям массу преимуществ. К примеру, в Python сортировка списка организована просто. В отличие от того же Turbo Pascal и Delphi, в которых порой нужно прописывать десятки строк для выстраивания элементов массива в определенном порядке, в Python достаточно создать функцию в 3-4 строчки.

Кортежи

Как и строки, в Python список может быть неизменяемым объектом, иначе говоря immutable. В таком случае он называется кортежем, или tuple. Список требует больше памяти для выполнения задачи. Кортеж заключается в круглые скобки вместо квадратных. Допускается вывод tuple вовсе без скобок. Как было сказано, кортеж – неизменяемый объект. Нельзя конкретному адресу присвоить значение. Можно воспользоваться методом append, который добавит в конец кортежа нужные данные. Ниже показано, как правильно добавлять элементы в tuple.

Если использовать tuple как функцию, то строку он превращает в кортеж. К примеру: tuple ("string") → ("s","t","r","i","n","g").Списки и файлы

Зачастую пользователи не знают, как в языке Python список файлов вывести на экран с использованием пути. Для этого необходимо подключить модуль OS и применить метод listdir. Следует обратить внимание, что в Python 3 списки (в версии 2.7 также) os.listdir (path) требуется вместо path ввести путь к каталогу в кавычках. Можно вывести количество всех объектов в папке.

Примеры задач с решением

1. Дан непустой список. Нужно вывести на экран индексы элементов списка, если их значения находятся в указанном промежутке. Минимальное и максимальное значения промежутка задаются пользователем. Индексы найденных элементов записываются в новый список. Дальше нужно вывести на экран его содержимое и длину.

Алгоритм:Заполнение списка List1 рандомным образом (т. е. случайным).Вывод на экран приглашения пользователю ввести минимальное и максимальное значение для промежутка.Организация цикла, в котором происходит перебор всех элементов изначального списка, поиск индекса тех компонентов, которые подходят по заданному ограничению (min<X<max).Добавление позиций в новый список List2.Вывод на экран List2 и его длины.

2. Имеется непустой список. Нужно проверить, все ли элементы уникальные, и убедиться, что нет повторов.

Алгоритм:Создать список.Методом перебора убедиться, что данный элемент и последующий отличаются друг от друга.Если появляется не уникальный компонент, выводится на экран надпись «Не уникальный».Выход из программы.Задачи для самоконтроляДополнение к задаче 1. Если найден элемент с нужным значением, он добавляется в новый список и удаляется из старого. Подсказка: использовать цикл while, функцию len ().Дан непустой список. Необходимо определить, являются ли соседние числа одинаковыми по знаку (положительные, отрицательные). Если такие элементы списка присутствуют, нужно вывести их на экран, если отсутствуют – не выводить ничего, если пар несколько – вывести первую.Создать список. Количество элементов задает пользователь. Нужно сгенерировать список рандомным образом и вывести на экран элементы, находящиеся на четных позициях, начиная с 0.

Создать список. Количество элементов задает пользователь. Нужно сгенерировать список рандомным образом и вывести на экран четные элементы, т. е. делящиеся на 2. Подсказка: использовать цикл FOR. Внимание: перебирать нужно числа, а не индексы.Создать список. Количество элементов задает пользователь. Сгенерировать список рандомным образом. Вывести на экран числа, которые больше своего предшествующего соседа.



Категория: Техника