#python #функции
Нагуглил функцию strip(), но она удаляет только первый и последний пробел, а мне нужно все. Например, если a = ' sd dfsdf dfsfs', то нужно получить a = 'sddfsdfdfsfs'. Есть ли такая функция или надо через цикл как-то делать?
Ответы
Ответ 1
a.replace(' ', '')Ответ 2
strip() может удалить не только пробел, но и табы и другие символы, которые считаются пробелом, включая Юникодные пробелы, если strip() вызван для Юникодной строки: >>> import string >>> string.whitespace '\t\n\x0b\x0c\r ' >>> string.whitespace.strip() '' >>> import sys >>> s = ''.join(unichr(i) for i in xrange(sys.maxunicode) if unichr(i).isspace()) >>> s[:15] u'\t\n\x0b\x0c\r\x1c\x1d\x1e\x1f \x85\xa0\u1680\u180e\u2000' >>> s.strip() u'' Поэтому аналог strip(), который удаляет пробел во всей строке: s = ''.join(s.split()). Или, тоже самое, используя регулярные выражения: s = re.sub(r'\s+', '', s, flags=re.UNICODE). Или, в коде, где важна производительность, bytes.translate() может быть использован, чтобы удалить все стандартные (string.whitespace в С локале) пробелы из ascii строки: >>> b'a\tb\nc'.translate(None, b'\t\n\v\f\r ') 'abc'Ответ 3
Если неизвестно количество пробелов, и табов, самый простой способ: a = 'Some string with meny space or tabs' b = a.split() b = ''.join(b) b >>> Somestringwithmenyspaceortabs
Комментариев нет:
Отправить комментарий