Вот большая часть примеров: filter(None, infi.split(' ')) map(str.strip, finfi) ' '.join(mystring.split()) mystring.replace('mess','',[n,m]) str.translate(table[, deletechars]) Это только те, которые я использовал. Но есть еще много других возможностей. Их надо искать по ссылкам на документацию... Часть сылок не наверху (как обычно), а ниже в тексте...
infi ="Infiniti 1 304 1 551 -16% 833 926 -10%"
infi.split(' ')
filter(None, infi.split(' '))
Как перебрать все элементы списка и для каждого выполнить определенную функцию¶
Сначала пробуем ошибочный вариант
filter(None, infi.split(' '))
Потом находим сфункцию map(), которая, собственно, и предназначена именно для этой цели: принимает два параметра впереди функция, на втором месте iterable. Соответственно, функция может быть довольно сложной...
finfi = filter(None, infi.split(' '))
map(str.strip, finfi)
Здесь мы в качестве функции используем метод str.strip ...Надо запомнить этот прием, здесь мы в качестве объекта используем встроенный str
Возможен еще один "хитрый" способ c прямым вызовом for...
print([i.strip() for i in finfi])
А какие еще приемы и методы можно использовать для чистки парсенных строк¶
Я уже умею (использовал)
' '.join(mystring.split()) #- убираем лишние пробелы из mystring
'","'.join(mystring.split()) #- заменяем пробелы на "," и кавычки
mystring.replace('mess','',[n,m]) #- убираем (или) заменяем мусор
#mystring.strip()
'www.example.com'.strip('cmowz.')
# str.translate(table[, deletechars])
'read this short text'.translate(None, 'aeiou')
from string import maketrans
intab = "aeiou" outtab = "12345" trantab = maketrans(intab, outtab)
str= "this is string example...wow!!!"; print str.translate(trantab);
intab = "aeiou"
outtab = "1234"
trantab = maketrans(intab, outtab)
str.translate(trantab);
deletetab = "!w"
mystr= "this is string example...wow!!!"
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
mystr.translate(trantab, deletetab)
Delete all characters from s that are in deletechars (if present), and then translate the characters using table, which must be a 256-character string giving the translation for each character value, indexed by its ordinal. If table is None, then only the character deletion step is performed.
Запомним последовательность, сначала стираются, а потом оставшиеся заменяются. Причем, стереть можно сразу несколько ненужных символов (в отличие от replace())
mystr.translate(None, deletetab)
Таким образом, можно просто убрать из строки несколько символов.
Return a copy of string s with all occurrences of substring old replaced by new. If the optional argument maxreplace is given, the first maxreplace occurrences are replaced.
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий