#python-3.x #replace
#python-3.x #заменить
Вопрос:
У меня есть список, подобный этому
test1 = ['a', 'b', 'c', '', 'd']
и я ожидаю заменить «на «hello»
test2 = [w.replace('', 'test') for w in test1 ]
вывод: ['a', 'b', 'c', '', 'd']
Итак, как использовать понимание списка, чтобы сделать это?
Комментарии:
1. Добро пожаловать в SO! Я не совсем понимаю, что вы пытаетесь здесь сделать, и мой вывод не совпадает с вашим. Я вижу,
['testatest', 'testbtest', 'testctest', 'test', 'testdtest']
а не['a', 'b', 'c', '', 'd']
как указано в вашем сообщении. Можете ли вы уточнить свои намерения?2. О, вы правы, если я запущу test2 = [w.replace(«, ‘test’) для w в test1], вывод точно такой, как вы видите, я ожидаю заменить «на «test», вы знаете, как это сделать? 🙂
Ответ №1:
понимание списка было бы:
[t if t is not '' else 'hello' for t in test1]
Ответ №2:
test1 = ['a', 'b', 'c', '', 'd']
for n in range(len(test1)):
if not test1[n]:
test1[n] = 'hello'
Пустая строка имеет значение false, вы также можете использовать test1[n] == ''
Ответ №3:
что-то вроде:
x = ['a', 'b', 'c', '', 'd']
['hello' if s=='' else s for s in x]
['a', 'b', 'c', 'hello', 'd']