Python-сообщество
нужно ли проверять правильность переданного списка?
и если да, то что выводить при передачи “нестандартного” списка?
Отредактировано terabayt (Март 15, 2015 20:04:10)
#3 Март 15, 2015 20:40:29
Преобразование списка в строку
Я бы так задачу решил
_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don’t let PEP 8 make you insanely intolerant of other people’s code.
#4 Март 15, 2015 20:46:58
Преобразование списка в строку
Точно. Я не учел, что некоторые цифры могут дублироваться и список надо бы отсортировать для начала )
Тогда просто вначале удаляем повторяющиеся цифры и сортируем список, никаких сообщений о дубликатах не выводим. Кстати, а как это лучше удалить повторы? Перебором в цикле или преобразованием во множество, затем в отсортированный список?
Список строк в Python
В Python список строк – это список, который содержит строки в качестве своих элементов.
В этом руководстве мы узнаем, как создать список строк, получить доступ к строкам в списке с помощью индекса, изменить строки в списке, назначая новые значения, и перемещаться по строкам в списке в цикле, используя while и for.
Как создать список строк?
Чтобы создать список строк, назначьте строковые значения, разделенные запятыми, заключенные в квадратные скобки.
Мы также можем использовать конструктор list() для создания списка строк, как показано ниже.
Доступ к строкам
Чтобы получить доступ к элементам в списке строк, мы можем использовать index. Индекс начинается с 0 и увеличивается на единицу для последующих элементов.
Как изменить?
Чтобы изменить элементы в списке строк, мы можем использовать индекс, аналогичный тому, как мы обращались к строкам в приведенном выше примере. Мы должны использовать оператор присваивания и присвоить новое значение элементу в списке, на который ссылается индекс.
Переход по строкам
Строки в List of Strings – это упорядоченный набор элементов. Итак, мы можем использовать любой оператор цикла: while или for loop.
В следующем примере мы будем использовать цикл for для обхода каждой строки в списке строк.
В следующем примере мы будем использовать цикл while для обхода каждой строки в списке строк.
В этом руководстве примеров в Python мы узнали, как создавать, получать доступ, изменять и выполнять итерацию для списка строк.
Строки в Python
В этом уроке вы научитесь создавать, форматировать, изменять и удалять строки в Python. Также вы познакомитесь с различными строковыми операциями и функциями.
Что такое строка в Python?
Строка в Python — это обычная последовательность символов (букв, цифр, знаков препинания).
Компьютеры не имеют дело с символами, они имеют дело с числами (в двоичной системе). Даже если вы видите символы на вашем экране, внутри памяти компьютера он хранится и обрабатываются как последовательность нулей и единиц.
Преобразование символа в число называется кодированием, а обратный процесс — декодированием. ASCII и Unicode — наиболее популярные из кодировок, которые используются для кодирования и декодирования данных.
В Python, строка — это последовательность символов Unicode. Юникод был введен для включения каждого символа на всех языках и обеспечения единообразия в кодировании.
Как создать строку в Python?
Строки можно создавать, заключая символы в одинарные или двойные кавычки. Даже тройные кавычки могут использоваться в Python, но они обычно используются для представления многострочных строк и строк документации (docsrting).
Как получить доступ к символам в строке?
Мы можем получить доступ к отдельным символам, используя индексирование, и диапазон символов, используя срезы. Индекс начинается с 0. Попытка получить доступ к символу вне диапазона индекса вызовет ошибку IndexError. Индекс должен быть целым числом. Мы не можем использовать float или другие типы, это приведет к ошибке TypeError.
Python допускает отрицательную индексацию для своих последовательностей.
Индекс -1 относится к последнему элементу, -2 — ко второму с конца элементу и т.д. Мы можем получить доступ к ряду элементов в строке, используя оператор среза (двоеточие).
Как изменить или удалить строку?
Строки относятся к неизменяемым типам данных (immutable type). Это означает, что элементы строки не могут быть изменены после того, как она была создана. Мы можем просто переназначить разные строки одному и тому же имени.
Мы не можем удалять символы из строки. Но полностью удалить строку можно с помощью ключевого слова del.
Операции со строками в Python
Есть много операций, которые могут быть выполнены со строкой, что делает ее одним из наиболее часто используемых типов данных в Python.
Конкатенация двух или более строк
Объединение двух или более строк в одну называется конкатенацией. В Python конкатенация выполняется оператором +.
Оператор * может использоваться для повторения строки в течение заданного числа раз.
Перебор строк
Используя цикл for, мы можем перебирать строку.
Пример для подсчета количества символа ‘l’ в строке.
Проверка на наличие символа в строке
Мы можем проверить, существует ли подстрока в строке или нет, используя ключевое слово in.
Встроенные функции для работы со строками в Python
Различные встроенные функции, которые работают с последовательностью, работают также со строкой.
Некоторые из наиболее часто используемых — это enumerate() и len(). Функция enumerate() возвращает объект перечисления. Он содержит индекс и значение всех элементов в строке в виде пар.
Аналогично, len() возвращает длину (количество символов) строки.
Форматирование строк в Python
Экранирование символов
Если внутри строки содержатся символы одинарной и двойной кавычки, то вне зависимости от того, какие кавычки мы использовали для создания строки — мы получим ошибку SyntaxError.
Один из способов обойти эту проблему — использовать тройные кавычки. В качестве альтернативы мы можем использовать escape-последовательности или так называемое «экранирование символов».
Экранирующая последовательность начинается с обратной косой черты. Если мы используем одинарную кавычку для представления строки, все одинарные кавычки внутри строки должны быть экранированы. Аналогично обстоит дело с двойными кавычками. Вот как это можно сделать для представления приведенного выше текста.
Использование метода format() для форматирования строк
Метод format(), доступный для строкового объекта, очень универсален и мощен в форматировании строк. Формат строки содержит фигурные скобки в качестве заполнителей или заменяющих полей, которые заменяются соответствующими значениями.
Мы можем использовать позиционные аргументы или ключевые аргументы, чтобы указать порядок.
Метод format() может иметь необязательные спецификации формата. Они отделены от имени поля двоеточием. Например, мы можем выравнивать по левому краю <, выравнивать по правому краю > или центрировать ^ строку в заданном пространстве. Мы также можем отформатировать целые числа как двоичные, шестнадцатеричные и т.д., а числа с плавающей точкой могут быть округлены или отображены в формате экспоненты. Существует множество форматов, которые вы можете использовать. Более подробно про метод format() можно почитать в официальной документации к языку.
Python: конвертировать строку в список
Если вы не хотите импортировать дополнительные модули, вы можете сделать что-то вроде этого:
Используйте генератор списка с split и trim например:
split на , и ноль или больше space .
Верните список слов в строке, используя sep в качестве строки разделителя. Если задано maxsplit, выполняется максимум maxsplit (таким образом, список будет иметь максимум maxsplit + 1 элемент). Если maxsplit не указан, то нет ограничений на количество расколов (все возможные расщепления сделаны). Если указано sep, последовательные разделители не группируются вместе и считаются разграниченными пустыми строками (например, ‘1, 2’.split(‘, ‘) возвращает [‘ 1 ‘,’ ‘,’ 2 ‘]). Аргумент sep может состоять из нескольких символов (например, ‘1 <> 2 <> 3’.split(‘ <> ‘) возвращает [‘ 1 ‘,’ 2 ‘,’ 3 ‘]). Разделение пустой строки с указанным разделителем возвращает [»]. Если sep не указан или None, применяется другой алгоритм разделения: пробелы последовательного пробела рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или в конце, если строка имеет ведущее или завершающее пробелы. Следовательно, разделение пустой строки или строки, состоящей из просто пробела с разделителем None, возвращает [].