#python-3.x #python-3.6
#python-3.x #python-3.6
Вопрос:
Если у меня есть какая-либо строка, например:
‘arest alpha gma beta’ или ‘alpha’
Я хочу, чтобы:
- добавить звездочку после каждого ключевого слова
- если слов несколько, замените пробел
between
в них на||
Нет, я использую:
term_str = " ".join(keyword.strip().split()).replace(' ', '* ||')
Проблема в том, что если используется только одно ключевое слово, то * не добавляется.
Я знаю, что могу написать for loop
и condition
, но я ищу что-то большее, чем однострочное выражение python.
Ответ №1:
Мы можем разделить строку, добавить *
после каждого слова, затем соединить измененные слова вместе с ||
:
def func(keywords):
return '||'.join(map('{}*'.format, keywords.split()))
print(func('arest alpha gma beta')) # arest*||alpha*||gma*||beta*
print(func('alpha ')) # alpha*
Комментарии:
1. Я предполагаю, что субъективно, но я думаю, что понимание было бы более читабельным, чем
map()
.