{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cbd685bb",
   "metadata": {},
   "source": [
    "# <span style=\"color: #0077FF\">Задания для практического занятия по теме «Одномерные списки»</span>   "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abb42f6f",
   "metadata": {},
   "source": [
    "### Перед началом работы переименуйте файл! \n",
    "### Замените __NameStud__ на свои ФамилияИмя латиницей, __gr0__ на gr + номер Вашей группы."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0727b3d",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\"> 📌 При решении задач используйте функции ввода списка с клавиатуры, создания списка случайных чисел и печати элементов списка из прошлого ноутбука.📌\n",
    "    </div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3b903e2",
   "metadata": {},
   "source": [
    "## <span style=\"color: #0077FF\">Замена, удаление и вставка элементов в списке. </span>   \n",
    "\n",
    "### <span style=\"color: #0077FF\">Пример 1. Замена элементов списка по значению. </span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebc70ea5",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = [5, -2, 16, 8, -3]\n",
    "print(a)\n",
    "for i in range(len(a)):\n",
    "    if a[i] < 0: a[i] = 0\n",
    "print(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7cbaa0c1",
   "metadata": {},
   "source": [
    "### <span style=\"color: #0077FF\">Пример 2. Замена элементов списка по номеру. </span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b7b92f74",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = [5, 9, -2, 4, 1]\n",
    "print(a)\n",
    "k1, k2 = 2, 4\n",
    "a[k1], a[k2] = a[k2], a[k1]\n",
    "print(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "183fac29",
   "metadata": {},
   "source": [
    "### <span style=\"color: #0077FF\">Пример 3. Удаление элемента списка </span>   \n",
    "#### <span style=\"color: #0077FF\">Пример 3.1. Удаление элемента списка при помощи методов </span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "edd14fc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "b = [8, 0, 3, 2, 5, 1, 4]\n",
    "print(b)\n",
    "nom = 3\n",
    "b.pop(nom) # удаление элемента с номером nom\n",
    "print(b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1ef33042",
   "metadata": {},
   "outputs": [],
   "source": [
    "b = [8, 0, 3, 2, 5, 1, 4]\n",
    "print(b)\n",
    "nom = 3\n",
    "del b[nom] # удаление элемента с номером nom\n",
    "print(b)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f7f216a",
   "metadata": {},
   "source": [
    "\n",
    "#### <span style=\"color: #0077FF\">Пример 3.2. Удаление элемента списка по номеру при помощи срезов </span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2985bf45",
   "metadata": {},
   "outputs": [],
   "source": [
    "c = [1, 2, 3, 4, 5, 6]\n",
    "print(c)\n",
    "nom = 3\n",
    "c = c[:nom] + c[nom + 1:]\n",
    "print(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f762b75",
   "metadata": {},
   "source": [
    "\n",
    "#### <span style=\"color: #0077FF\">Пример 3.3. Удаление ВСЕХ элементов списка по значению </span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "df058e52",
   "metadata": {},
   "outputs": [],
   "source": [
    "def func_del(x, xdel):\n",
    "    i = 0\n",
    "    while i < len(x):\n",
    "        if x[i] == xdel:\n",
    "            x = x[:i] + x[i + 1:]\n",
    "        else:\n",
    "            i += 1\n",
    "    return x\n",
    "\n",
    "c = [0, 1, 2, 0, 4, 5, 0]\n",
    "print(c)\n",
    "c = func_del(c, 0)\n",
    "print(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7953d5d8",
   "metadata": {},
   "source": [
    "### <span style=\"color: #0077FF\">Пример 4. Вставка элемента в список </span>   \n",
    "#### <span style=\"color: #0077FF\">Пример 4.1. Вставка элемента в список при помощи метода</span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a307f54b",
   "metadata": {},
   "outputs": [],
   "source": [
    "c = [0, 1, 2, 0, 4, 5, 0]\n",
    "print(c)\n",
    "nom = 3\n",
    "c.insert(nom, -100)\n",
    "print(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b6622e2c",
   "metadata": {},
   "source": [
    "\n",
    "#### <span style=\"color: #0077FF\">Пример 4.2. Вставка элемента в список при помощи срезов</span>   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5f7c67b3",
   "metadata": {},
   "outputs": [],
   "source": [
    "c = [0, 1, 2, 0, 4, 5, 0]\n",
    "print(c)\n",
    "k = 3\n",
    "x = -100\n",
    "c[k:k] = [x]\n",
    "print(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43e70047",
   "metadata": {},
   "source": [
    "# <div class=\"alert alert-block alert-info\"> 📌 Во всех задачах считать, что «Дан список» означает сгенерирован случайным образом функцией random_list из прошлого ноутбука. Во всех заданиях красивая печать списка обязательна! 📌</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b478c4e",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 1. 💫 </span></b>   \n",
    "Дан список целых чисел. Удалить из списка все четные элементы."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ec339382",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "9f96c07c",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 2. 💫 </span></b>   \n",
    "Дан список целых чисел, целое число $x$ и номер $k$. Вставить некоторое заданное число $x$ в целочисленный список до и после элемента с заданным номером $k$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc29eb5d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "397e3f8c",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 3. 💫 </span></b>   \n",
    "Дан список целых чисел. Поменять местами первый элемент и элемент с максимальным\n",
    "значением (если максимальных несколько, то с первым по порядку). Функцию max не использовать!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "82f39c22",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "d413fd79",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 4. 💫 </span></b>   \n",
    "Дан список целых чисел. В списке поменять местами элементы: первый отрицательный и последний отрицательный."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bd424559",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "93e7c395",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 5. 💫 </span></b>   \n",
    "Дан список целых чисел. Расположенные рядом числа одного знака образуют серию. Найти\n",
    "1) максимальную длину серии положительных чисел;\n",
    "2) самую длинную серию положительных чисел."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5d1454fc",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "73c7e2d7",
   "metadata": {},
   "source": [
    "### <b><span style=\"color: #0077FF\"> 💫 Задание 6. 💫 </span></b>   \n",
    "Дан список целых чисел. Найти два элемента списка, модуль разности которых максимален, и поменять их местами."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "639c783b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.11.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
