Как удалить последний символ в строке python
Перейти к содержимому

Как удалить последний символ в строке python

  • автор:

Как удалить последний символ в строке питон

Для этой задачи можно использовать цикл. Но python way – это срезы. Удалить последний символ можно вот таким изящным способом:

>>> string = "Hello!" >>> string[:-1] 'Hello' >>> 

Мы получаем часть строки от первого до предпоследнего символа.

Как удалить последний элемент строки python

Последний элемент строки можно просто удалить срезом.

s = 'foobar' s = s[:-1] s # 'fooba' 

Основы Python за 14 дней

72 урока в онлайн-тренажере

4 живых вебинара и масскодинг

Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

Курсы по программированию на Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Похожие вопросы

01 ноября 2021

01 ноября 2021

01 ноября 2021

  • python строки
  • python массивы

01 ноября 2021

  • python строки
  • python массивы
  • 8 800 100 22 47 бесплатно по РФ
  • +7 495 085 28 38 бесплатно по Москве

Направления

  • Курсы «Backend-разработка»
  • Курсы «Frontend-разработка»
  • Курсы «Создание сайтов»
  • Курсы «Тестирование»
  • Курсы «Аналитика данных»
  • Интенсивные курсы
  • Курсы DevOps
  • Курсы «Веб-разработка»
  • Курсы «Математика для программистов»
  • Все курсы

О Хекслете

  • О нас
  • Карьера в Хекслете
  • Хекслет Колледж

ООО «Хекслет Рус» 432071, г. Ульяновск, пр-т Нариманова, дом 1Г, оф. 23 ОГРН 1217300010476

  • Справка
  • Вопросы и ответы
  • Сообщество
  • Дополнительно
  • Условия использования
  • Соглашение об обработке ПД
  • Оферта
  • Акции

Как убрать последний символ «,» в строке в выводе?

У меня есть список list = [‘a’, ‘b’, ‘c’, », », ‘1’, ‘2’, ‘3’, », », ‘4’, ‘5’, ‘6’] . Нужно вывести его так:

 a,b,c 1,2,3 4,5,6 

У меня получается так:

a,b,c, 1,2,3, 4,5,6, 
cnt = 0 for i in lst: if i != '': print(i, end=',') elif i == '': cnt += 1 if cnt % 2 == 0: print('') 

Вопрос: как в этом выводе убрать последний символ «,» в строке? rstrip(«,») не меняет ничего
Отслеживать
48.9k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 7 июл 2022 в 8:14
1 1 1 бронзовый знак

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

for i in range(3): print(','.join(lst[i*5:i*5+3])) 

Отслеживать
ответ дан 7 июл 2022 в 8:32
53.2k 3 3 золотых знака 19 19 серебряных знаков 43 43 бронзовых знака

А если пробельные символы идут через разное количество непробельных? Например, list = [‘a’, ‘b’, ‘c’, », », ‘1’, ‘2’, », », ‘4’, ‘5’, ‘6’]

7 июл 2022 в 8:44
Тогда нужно в цикле искать следующий пробельный
7 июл 2022 в 8:51

Через end=’,’ не получится, нужно как-то исхитряться. У меня так получилось:

list_ = ['a', 'b', 'c', '', '', '1', '2', '3', '', '', '4', '5', '6'] first = True for x in list_: if not x: if not first: print() first = True else: if not first: print(', ', end='') print(x, end='') first = False 
a, b, c 1, 2, 3 4, 5, 6 

Отслеживать
ответ дан 7 июл 2022 в 8:26
70.2k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак

это можно реализовать и самому, но есть удобная библиотека more_itertools

from more_itertools import chunked lst = ['a', 'b', 'c', '', '', '1', '2', '3', '', '', '4', '5', '6'] for i in chunked(filter(lambda x: x!='', lst), 3): print(*i, sep=',') >>> out ''' a,b,c 1,2,3 4,5,6 

Отслеживать
ответ дан 7 июл 2022 в 10:14
5,645 1 1 золотой знак 7 7 серебряных знаков 17 17 бронзовых знаков

  • python
  • print
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.1.5619

Архимед Python 19/20

Строка считывается со стандартного ввода функцией input() . Напомним, что для двух строк определа операция сложения (конкатенации), также определена операция умножения строки на число.

Строка состоит из последовательности символов. Узнать количество символов (длину строки) можно при помощи функции len :

>>> S = 'Hello' >>> print(len(S)) 5

Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.

Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, S[i] — это срез, состоящий из одного символа, который имеет номер i , при этом считая, что нумерация начинается с числа 0. То есть если , то , , , , .

Номера символов в строке (а также в других структурах данных: списках, кортежах) называются индексом.

Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, начиная с номера -1 . То есть , , , , .

Или в виде таблицы:

Строка S H e l l o
Индекс S[0] S[1] S[2] S[3] S[4]
Индекс S[-5] S[-4] S[-3] S[-2] S[-1]

Если же номер символа в срезе строки S больше либо равен len(S) , или меньше, чем -len(S) , то при обращении к этому символу строки произойдет ошибка IndexError: string index out of range .

Срез с двумя параметрами: S[a:b] возвращает подстроку из b-a символов, начиная с символа c индексом a , то есть до символа с индексом b, не включая его. Например, S[1:4]==’ell’ , то же самое получится если написать S[-4:-1] . Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] — это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его).

При использовании такой формы среза ошибки IndexError никогда не возникает. Например, срез S[1:5] вернет строку ‘ello’ , таким же будет результат, если сделать второй индекс очень большим, например, S[1:100] (если в строке не более 100 символов).

Если опустить второй параметр (но поставить двоеточие), то срез берется до конца строки. Например, чтобы удалить из строки первый символ (его индекс равен 0, то есть взять срез, начиная с символа с индексом 1), то можно взять срез S[1:] , аналогично если опустиить первый параметр, то срез берется от начала строки. То есть удалить из строки последний символ можно при помощи среза S[:-1] . Срез S[:] совпадает с самой строкой S .

Если задать срез с тремя параметрами S[a:b:d] , то третий параметр задает шаг, как в случае с функцией range , то есть будут взяты символы с индексами a , a+d , a+2*d и т.д. При задании значения третьего параметра, равному 2, в срез попадет кажый второй символ, а если взять значение среза, равное -1 , то символы будут идти в обратном порядке.

Метод — это функция, применяемая к объекту, в данном случае — к строке. Метод вызывается в виде Имя_объекта.Имя_метода(параметры) . Например, S.find(«e») — это применение к строке S метода find с одним параметром «e» .

Метод find и rfind

Метод find находит в данной строке (к которой применяется метод) данную подстроку (которая передается в качестве параметра). Функция возвращает индекс первого вхождения искомой подстроки. Если же подстрока не найдена, то метод возвращает значение -1. Например:

>>> S = 'Hello' >>> print(S.find('e')) 1 >>> print(S.find('ll')) 2 >>> print(S.find('L')) -1

Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).

>>> S = 'Hello' >>> print(S.find('l')) 2 >>> print(S.rfind('l')) 3

Если вызвать метод find с тремя параметрами S.find(T, a, b) , то поиск будет осуществляться в срезе S[a:b] . Если указать только два параметра S.find(T, a) , то поиск будет осуществляться в срезе S[a:] , то есть начиная с символа с индексом a и до конца строки. Метод S.find(T, a, b) возращает индекс в строке S , а не индекс относительно

Метод replace заменяет все вхождения одной строки на другую. Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на подстроку new . Пример:

>>> 'Hello'.replace('l', 'L') 'HeLLo'

Если методу replace задать еще один параметр: S.replace(old, new, count) , то заменены будут не все вхождения, а только не больше, чем первые count из них.

>>> 'Abrakadabra'.replace('a', 'A', 2) 'AbrAkAdabra'

Подсчитывает количество вхождений одной строки в другую строку. Простейшая форма вызова S.count(T) возвращает число вхождений строки T внутри строки S . При этом подсчитываются только непересекающиеся вхождения, например:

>>> 'Abracadabra'.count('a') 4 >>> ('a' * 100000).count('aa') 50000

При указании трех параметров , будет выполнен подсчет числа вхождений строки T в срез S[a:b] .

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

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