Как с помощью append сохранить
Перейти к содержимому

Как с помощью append сохранить

  • автор:

Списки (list). Функции и методы списков

Python 3 логотип

Сегодня я расскажу о таком типе данных, как списки, операциях над ними и методах, о генераторах списков и о применении списков.

Что такое списки?

Списки в Python — упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).

Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list:

Список можно создать и при помощи литерала:

Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего.

И еще один способ создать список — это генераторы списков. Генератор списков — способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for.

Возможна и более сложная конструкция генератора списков:

Но в сложных случаях лучше пользоваться обычным циклом for для генерации списков.

Функции и методы списков

Создать создали, теперь нужно со списком что-то делать. Для списков доступны основные встроенные функции, а также методы списков.

Таблица «методы списков»

Метод Что делает
list.append(x) Добавляет элемент в конец списка
list.extend(L) Расширяет список list, добавляя в конец все элементы списка L
list.insert(i, x) Вставляет на i-ый элемент значение x
list.remove(x) Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует
list.pop([i]) Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент
list.index(x, [start [, end]]) Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end)
list.count(x) Возвращает количество элементов со значением x
list.sort([key=функция]) Сортирует список на основе функции
list.reverse() Разворачивает список
list.copy() Поверхностная копия списка
list.clear() Очищает список

Нужно отметить, что методы списков, в отличие от строковых методов, изменяют сам список, а потому результат выполнения не нужно записывать в эту переменную.

   И, напоследок, примеры работы со списками:

Изредка, для увеличения производительности, списки заменяют гораздо менее гибкими массивами (хотя в таких случаях обычно используют сторонние библиотеки, например NumPy).

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Списки в Python

Здесь мы сохранили 2 переменные, в которых лежат названия фруктов. Но фруктов очень много. Что, если нам нужно работать с сотней таких записей? Например, если у вас интернет-магазин фруктов, придётся хранить очень много фруктов. Не создавать же сотню переменных…

Для таких задач есть списки:

fruits = ["Яблоко", "Банан", "Персик"] 

Список — это как бы способ сохранить много штук (строк, чисел и т.д.) в одной переменной. В этом случае в переменной fruits лежит сразу 3 строки: "Яблоко" , "Банан" и "Персик" .

Теперь, чтобы получить одну из строк в списке — нужно обратиться к ней по индексу. Нумерация в программировании идёт с нуля:

0: “Яблоко”
1: “Банан”
2: “Персик”

Чтобы получить нулевой элемент, мы пишем fruits[0] . Такой код выведет Яблоко :

apple = fruits[0] print(apple) 

Как добавить элемент в список

Бывает такое, что мы хотим добавить в список что-нибудь. Например, в магазине расширился ассортимент и теперь он торгует апельсинами. Добавляет строки в список метод .append() :

new_fruit = "Апельсин" fruits.append(new_fruit) print(fruits) 

Список выведется с новым фруктом: ['Яблоко', 'Банан', 'Персик', 'Апельсин'] .

Как удалить элемент из списка

Допустим, вы решили перестать торговать бананами. Нужно убрать их из списка. Поможет метод .remove() :

banana = "Банан" fruits.remove(banana) print(fruits) 

Список выведется без банана: ['Яблоко', 'Персик', 'Апельсин'] .

Из списка можно удалять элементы по их индексу. Код удалит нулевой элемент списка:

del fruits[0] print(fruits) 

Список выведется без яблока: ['Персик', 'Апельсин'] .

Как создать пустой список

Есть такая штука, как пустой список. Это когда в списке ничего не лежит. Создаётся он так:

empty_list = [] 

Так же, как и список с элементами, только без них. Вот так вот просто. В будущем этот список можно наполнить методом .append() .

Что дальше

Если статья не смогла объяснить что же такое списки или вы хотите почитать о них ещё, подойдут эти статьи:

  • Списки на metanit
  • Списки на pythontutor

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Как навсегда сохранить добавленные через jquery элементы формы?

Методом .append. Но при сохранении, все добавленные tr удаляються. Можно их как-то сохранять не прибегая к php. МОжет использовать другой метод не append или еще как-то.

  • Вопрос задан более трёх лет назад
  • 90 просмотров

2 комментария

Простой 2 комментария

potapchino

alex @potapchino
все сохраняется
LoveCodeandCoffe @LoveCodeandCoffe Автор вопроса
У меня после нажатия на кнопку сохранить, пропадают поля добавленные function addText()
Решения вопроса 0
Ответы на вопрос 1

wolf1848

Если я правильно понимаю, то после перезагрузки у вас добавленные поля исчезают. Это нормальное поведение страницы. Для того что бы добавленные после клика поля сохранялись после перезагрузки страницы, вам требуется сохранить информацию об этом на сервере (бд или куки), либо в браузере (js работа с куками) . На всякий случай уточню
'' +
'' +
' ?>'
вставленный таким образом php код не исполниться.

Как сохранить таблицу, в которую добавили элемент через js, после обновления страницы?

Добрый день. Испытываю огромные проблемы с пониманием localStorage. У меня есть таблица студентов, в которую я по нажатию кнопки добавляю нового студента, но после обновления таблицы добавленный студент исчезает. Понимаю, что нужно сохранить эту таблицу в localStorage, но не понимаю, как это сделать. Помогите, пожалуйста.

(() => < const tHadeArr = ['Фамилия, имя, отчество', 'Факультет', 'Дата рождения', 'Года обучения']; const studentsList = [ , , , , ] function createCustomEl (tag, text) < //функция чтобы добавить тег для элемента const el = document.createElement(tag); //название тега if (text) < //если что-то передано в текст el.textContent = text; //название тега >return el; > function createTHead (arr) < const thead = createCustomEl('thead'); //создаем заголовок таблицы const row = createCustomEl('tr'); arr.forEach(str =>< const cell = createCustomEl('td'); //здесь будет имя столбца const btn = createCustomEl('button'); //имя бдет кнопкой для фильтрации btn.textContent = str; //название кнопки из массива с заголовками cell.append(btn); //добавляем кнопку в строку заголовка таблицы row.append(cell); //добавляем заголовки в ряд >); thead.append(row); //добавляем полученные заголовки в таблицу return thead; //возвращаем заголовки, чтою их можно было добавить на страницу > function createStudRow (student) < //создаем таблицу, в которую будем добвлять студентов const row = createCustomEl('tr'); //создаем строку для данных о студенте const stfio = createCustomEl('td', student.fio); // с помощью функции создаем ячейку и записываем в нее значение и массива с данными о студентах const stFacult = createCustomEl('td', student.faculty); const stdb = createCustomEl('td', student.db); const stStudy = createCustomEl('td', student.study); row.append(stfio); row.append(stFacult); row.append(stdb); row.append(stStudy); return row; >function fillTBody (stArr, tBodyEl) < // заполняем таблицу массивом из студентов tBodyEl.innerHTML = ''; //отчищаем ячейки for (let st of stArr) < //проходи по данным из массива const studentRow = createStudRow(st); //записываем в константу результат выполнения функции tBodyEl.append(studentRow); //добавляем в ячеку >> function createTable () < const table = createCustomEl('table'); //создаем таблицу const thead = createTHead (tHadeArr); //создаем заголовки таблицы из массива с заголовками таблицы const tbody = createCustomEl('tbody'); //создаем тело для таблицы fillTBody(studentsList, tbody); //рисуем таблицу со студентами table.append(thead); //добавляем заголовки table.append(tbody); //добавляем тело return < table, tbody >> function addStudent (stArr, tbody) < // функция добавления студента из формы const studentObj = < // вместо этого заполненного объекта нужно будет передавать в эту переменную данные из формы fio: 'Федоров Федор Федорович', faculty: 'Технический', db: '11.06.1964', study: '2006-2010' >; stArr.push(studentObj); fillTBody(stArr, tbody); > function createApp () < //добавляем содержимое в html-вёрстку const container = document.querySelector('.conteiner'); // подключаем контейнер const tableObj = createTable(); // создаем таблицу container.append(tableObj.table); // добавляем в разметку созданную таблицу const addBtn = document.querySelector('.add-btn'); // поключаем кнопку addBtn.addEventListener('click', () =>< // навешиваем событие на кнопку, чтобы при клике срабатывала функция addStudent(studentsList, tableObj.tbody); // функция добавления студента из формы. >); localStorage.setItem("myKey",JSON.stringify(studentsList)); > createApp(); // запускаем функцию создания всего приложения >)();
      Список студентов  
  • Вопрос задан 22 июн. 2023
  • 195 просмотров

Комментировать
Решения вопроса 1

delphinpro

Сергей delphinpro @delphinpro Куратор тега JavaScript
frontend developer

Так у вас уже все готово

function createApp () < //добавляем содержимое в html-вёрстку // прочитать список studentList = JSON.parse(localStorage.getItem("myKey") ?? '[]'); const container = document.querySelector('.conteiner'); // подключаем контейнер const tableObj = createTable(); // создаем таблицу container.append(tableObj.table); // добавляем в разметку созданную таблицу const addBtn = document.querySelector('.add-btn'); // поключаем кнопку addBtn.addEventListener('click', () =>< // навешиваем событие на кнопку, чтобы при клике срабатывала функция addStudent(studentsList, tableObj.tbody); // функция добавления студента из формы. // При каждом обновлении сохраняем localStorage.setItem("myKey",JSON.stringify(studentsList)); >); // А это не надо // localStorage.setItem("myKey",JSON.stringify(studentsList)); >

Ответ написан 22 июн. 2023
Нравится 1 9 комментариев

delphinpro

Сергей delphinpro @delphinpro Куратор тега JavaScript

Кстати, шаблонные строки будут и нагляднее, и вставка сразу целой строки в innerHTML происходит быстрее, чем поочередное создание каждого элемента

function createStudRow (student) < return ` $ $ $ $ `; >

Lion97icvc @Lion97icvc Автор вопроса

6493fba7efa6f812090426.png

Не сработало, он ругается на studentsList = localStorage.getItem("myKey");

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *