{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Программирование и анализ данных\n", "\n", "*Алла Тамбовцева*\n", "\n", "## Методы для списков" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Создадим список `a`, с которым будем экспериментировать. Далее данный ноутбук построен в формате вопрос-ответ." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "a = [1, 2, 3, 3, 5, 9, 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как узнать, какой индекс в списке имеет нужный нам элемент?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.index()`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.index(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Внимание:* если в списке есть повторяющиеся значения, то будет выведен индекс только первого совпадения (движение по списку происходит слева направо)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.index(3) # 2 - то индекс первой тройки в списке" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как узнать, сколько раз нужный нам элемент встречается в списке?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.count()`:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 3, 5, 9, 0]\n" ] } ], "source": [ "print(a)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.count(1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.count(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как добавить элемент в середину списка (не в конец)?\n", "\n", "Другими словами, как добавить элемент в список, не заменяя никаких значений, например, так:\n", "\n", "*До*\n", "\n", " [1, 2, 3, 3, 5, 9, 0]\n", "\n", "*После*\n", "\n", " [1, 2, 4, 3, 3, 5, 9, 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.insert()`: сначала указывается индекс элемента (на какое место его поставить), а затем сам элемент." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 3, 5, 9, 0]\n", "[1, 2, 4, 3, 3, 5, 9, 0]\n" ] } ], "source": [ "print(a)\n", "a.insert(2, 4) # на место 2 ставим число 4\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как удалить из списка ненужный элемент?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.remove()`:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 4, 3, 3, 5, 9, 0]\n", "[1, 2, 4, 3, 3, 5, 0]\n" ] } ], "source": [ "print(a)\n", "a.remove(9) # уберем элемент, равный 9\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Внимание:* если в списке есть повторяющиеся значения, `.remove()` уберет только первое совпадение:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 4, 3, 3, 5, 0]\n", "[1, 2, 4, 3, 5, 0]\n" ] } ], "source": [ "print(a)\n", "a.remove(3) # уберем элемент, равный 3\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Еще внимание:* метод `.remove()`, как и другие методы, изменяет исходный список!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как удалить из списка элемент с определенным индексом?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.pop()`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 4, 3, 5, 0]\n", "[2, 4, 3, 5, 0]\n" ] } ], "source": [ "print(a)\n", "a.pop(0)\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Внимание:* метод `.pop()`, как и другие методы, изменяет исходный список!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как отсортировать список?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Воспользоваться методом `.sort()`." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 4, 3, 5, 0]\n", "[0, 2, 3, 4, 5]\n" ] } ], "source": [ "print(a)\n", "a.sort()\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "По умолчанию метод `.sort()` упорядочивает значения в списке по возрастанию. Если нужна сортировка по убыванию, достаточно дописать аргумент `reverse = True`:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 2, 3, 4, 5]\n", "[5, 4, 3, 2, 0]\n" ] } ], "source": [ "print(a)\n", "a.sort(reverse = True)\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Как и другие методы, `.sort()` изменяет исходный список. Если мы хотим сохранить порядок элементов в исходном списке, можно воспользоваться функцией `sorted`. Тогда порядок элементов в списке сохранится, но при этом будет создан новый список с элементами, отсортированными по возрастанию." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "b = [3, 8, 9, 1, 2, 6, 0]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "c = sorted(b)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 8, 9, 1, 2, 6, 0]\n", "[0, 1, 2, 3, 6, 8, 9]\n" ] } ], "source": [ "print(b)\n", "print(c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Или по убыванию:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 8, 9, 1, 2, 6, 0]\n", "[9, 8, 6, 3, 2, 1, 0]\n" ] } ], "source": [ "d = sorted(b, reverse = True)\n", "print(b)\n", "print(d)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }