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

47 0 Новини високих технологій

Python – часто використовуваний мову програмування, простий, красивий, зручний. Працювати з ним одне задоволення. Створювати об'єкти в Python (список, безліч, рядки, файли) досить легко. Головне – розуміти принцип програмування та алгоритмізації.

Поняття списку

Під списком розуміється згруповане безліч, укладена в дужки і є дуже гнучким типом даних. Елементи розділяються комами. Список можна порівняти з тим же масивом в Turbo Pascal або Delphi. З точки зору фізичного розташування подібне згруповане безліч є переліком адрес на його елементи.


Програмування на Python: список
Примітно, що в Python список може одночасно містити різні типи даних: цілі і речові числа, рядки, файли і т. д. В інших мовах програмування це неприпустимо.

Створення списків. Як це зробити?

Найпопулярнішим способом створити группированное безліч є генератор. Таким методом певний вираз застосовується до кожного елементу списку. Принцип роботи генератора можна зіставити з циклом FOR.
Програмування на Python: список
Можна перетворити в список в Python рядок і навпаки. Для цього потрібно задати тип list для вибраного рядкового виразу. У підсумку перетворюється в рядок группированное безліч літер, укладених в лапки.
Програмування на Python: список
Щоб створити більш складний перелік елементів, не рекомендується використовувати генератор списків. 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. Якщо користувач не вказує індекс, то метод видаляє останній компонент. Квадратні дужки необхідні для того, щоб вказати на опціонально параметра, тобто позицію можна пропустити.
  • Програмування на Python: список
  • List1.index (x, [start],[end]) – повернення адреси комірки першого елемента на проміжку від start до end. Ці параметри можуть вводитися користувачем на запрошення програми. Ще треба уточнити, що індексація починається з 0. Тобто адресу першого елемента дорівнює 0 другого – 1 і т. д. наприклад, мається список Х =[1.78487,5.575,7.364]. Тоді Х[0]= 178487 Х[1]= 5575 Х[2]= 7364.
  • 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 – знаходження мінімального компоненту в списку, незалежно від того, які вони за типом.
  • Програмування на Python: список
  • Max – висновок максимального елемента в згрупованому множині.
  • Sum – обчислення суми чисел у списку, незалежно від того, речові вони або цілі. Якщо у згрупованому безлічі є рядковий тип даних, то програма видасть помилку TypeError: unsupported operand type(s) for +: 'int' and 'str'.
  • Help – висновок на екран розділу допомоги по конкретному типу даних. Достатньо написати help (int) – для цілих чисел, help (str) – для рядкового типу даних, help (file) – для файлів, і програма видасть довідкову інформацію, в якій можна знайти методи, об'єкти і функції щодо необхідного розділу.
  • Type – показує, до якого типу належить дана змінна. Оформляється наступним чином: text_str = «Привіт» type (text_str)
  • Оператор in. Звичайно, це не функція, але за допомогою нього можна перевірити входження будь-якого елемента в зазначений список.
  • Сортування списків

    Дана мова програмування надає користувачам безліч переваг. Приміром, у Python сортування списку організована просто. На відміну від того ж Turbo Pascal і Delphi, в яких деколи потрібно прописувати десятки рядків для вибудовування елементів масиву в певному порядку, Python достатньо створити функцію в 3-4 рядки.
    Програмування на Python: список

    Кортежі

    Як рядки в Python список може бути незмінним об'єктом, інакше кажучи immutable. У такому випадку він називається кортежем, або tuple. Список потребує більше пам'яті для виконання завдання. Кортеж полягає в круглі дужки замість квадратних. Допускається висновок tuple зовсім без дужок. Як було сказано, кортеж – незмінний об'єкт. Не можна конкретною адресою присвоїти значення. Можна скористатися методом append, який додасть в кінець кортежу потрібні дані. Нижче показано, як правильно додавати елементи в tuple.
    Програмування на Python: список
    Якщо використовувати tuple як функцію, то він перетворює рядок у кортеж. Наприклад: tuple ("string") -> ("s","t","r","i","n","g").

    Списки і файли

    Часто користувачі не знають, як у мові Python список файлів вивести на екран з використанням шляху. Для цього необхідно підключити модуль OS і застосувати метод listdir. Слід звернути увагу, що в Python 3 списки (версії 2.7) os.listdir (path) потрібно замість path вказати шлях до каталогу в лапках. Можна вивести кількість всіх об'єктів в каталозі.
    Програмування на Python: список

    Приклади завдань з рішенням

    1. Дан непорожній список. Потрібно вивести на екран індекси елементів списку, якщо їх значення знаходяться у вказаному проміжку. Мінімальне та максимальне значення проміжку задаються користувачем. Індекси знайдених елементів записуються в новий список. Далі потрібно вивести на екран його вміст і довжину. Алгоритм:
  • Заповнення списку List1 рандомным чином (тобто випадковим).
  • Виведення на екран запрошення користувачеві ввести мінімальне та максимальне значення проміжку.
  • Організація циклу, в якому відбувається перебір всіх елементів початкового списку, пошук індексу тих компонентів, які підходять по заданому обмеженню (min
  • Додавання позицій у новий список List2.
  • Висновок на екран List2 і його довжини.
  • Програмування на Python: список
    2. Є непорожній список. Потрібно перевірити, чи всі елементи унікальні, і переконатися, що немає повторів. Алгоритм:
  • Створити список.
  • Методом перебору переконатися, що даний елемент і подальший відрізняються один від одного.
  • Якщо з'являється не унікальний компонент, який виводиться на екран напис «Не унікальний».
  • Вихід з програми.
  • Завдання для самоконтролю

  • Доповнення до завдання 1. Якщо знайдений елемент з потрібним значенням, він додається в список видаляється з старого. Підказка: використовувати цикл while, функцію len ().
  • Дан непорожній список. Необхідно визначити, чи є сусідні числа однаковими за знаком (позитивні, негативні). Якщо такі елементи списку присутні, потрібно вивести їх на екран, якщо відсутні – не виводити нічого, якщо кілька пар – вивести першу.
  • Створити список. Кількість елементів задає користувач. Потрібно згенерувати список рандомным чином і вивести на екран елементи, що знаходяться на парних позиціях, починаючи з 0.
  • Програмування на Python: список
  • Створити список. Кількість елементів задає користувач. Потрібно згенерувати список рандомным чином і вивести на екран парні елементи, тобто діляться на 2. Підказка: використовувати цикл FOR. Увага: перебирати потрібно числа, а не індекси.
  • Створити список. Кількість елементів задає користувач. Згенерувати список рандомным чином. Вивести на екран числа, які більше свого попереднього сусіда.