Python частично объединить строки в список с разделителем - PullRequest
0 голосов
/ 09 июля 2020

У меня есть список строк ['what', 'is', 'apple', '&', 'orange'] Я хочу выполнить соединение, только когда '&' находится между двумя строками. Разыскивается: ['what', 'is', 'apple&orange']

То, что я могу думать до сих пор, выглядит очень глупо. Есть ли способ Pythoni c сделать это?

Ответы [ 2 ]

3 голосов
/ 10 июля 2020
l = ['what', 'is', 'apple', '&', 'orange', 'apple', '&', 'banana']

new_list = ' '.join(l).replace(' & ', '&').split()

# print(new_list)
['what', 'is', 'apple&orange', 'apple&banana']
0 голосов
/ 09 июля 2020

Это не очень pythoni c, но это самый чистый способ, который я мог придумать. Обратите внимание, что этот код прерывается, если у вас есть '&' в последней позиции вашего списка.

your_list = ['what', 'is', 'apple', '&', 'orange']

out = []
i = 0

while i < len(your_list):
    word = your_list[i]
    
    if (i < len(your_list) - 1) and your_list[i + 1] == '&':
         word = word + '&' + your_list[i + 2]
         i += 2
    
    out.append(word)
    i += 1

print(out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...