Найти - Пользователи
Полная версия: Как элегантно заменить слова из списка в строке?
Начало » Python для новичков » Как элегантно заменить слова из списка в строке?
1 2
Dobrodel
theproshin
# -*- coding: utf-8 -*-
dd=['word1','word2','word3']
string = 'word1word word word2 word3word fdsghg'
list = string.split()
[list.__setitem__(list.index(i), j) for i in list for j in dd if j in i]
print  " ".join(list)
Чуть подправил - работает:

# -*- coding: utf-8 -*-
dd=['word1','word2','word3']
string = 'word1word word word2 word3word fdsghg'
list = string.split()
[list.__setitem__( list.index( i ), i.replace( j, '' ) ) for i in list for j in dd if j in i]
print  " ".join(list)
word word  word fdsghg
Благодарю!

PS
Правда это вариант в 2.5 раза выполняется дольше чем предыдущий.(
py.user.next
Лучше типа такого. Он яснее.

Dobrodel
Чуть подправил - работает:
При разделении строки через split() группы пробельных символов превращаются в один пробел. Да и вообще множество ошибок там - пример того, как писать не стоит.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB