Объедините список до определенного символа - PullRequest
2 голосов
/ 29 мая 2020

У меня есть этот список:

Jokes =   ['First joke', 'Still first', '', 'Second Joke', 'Still second joke', 'Still 2nd joke']

Я хотел бы объединить список следующим образом:

Jokes = ['First joke \n Still first', 'Second joke \n Still second joke \n Still 2nd joke']

Возможно ли это каким-то образом?

Спасибо,

Ответы [ 3 ]

1 голос
/ 29 мая 2020

Вот пример решения:

jokes = ['First joke', 'Still first', '', 'Second Joke', 'Still second joke', 'Still 2nd joke']

groups = [[]]
for part in jokes:
    if part:
        groups[-1].append(part)
    else:
        groups.append([])

result = [' \n '.join(joke) for joke in groups]
print(result)
0 голосов
/ 29 мая 2020

Какие критерии вы используете для определения момента разделения. Вы используете ""? Вы ожидаете именно фразы «первая шутка» «вторая шутка»? Вы не указываете нам свои критерии, поэтому мы предполагаем. Предположим, это "".

Jokes = ['First joke', 'Still first', '', 'Second Joke', 'Still second joke', 'Still 2nd joke']
idx   = Jokes.index('')
Jokes = ['\n'.join(Jokes[:idx]),'\n'.join(Jokes[idx+1:])]
print(Jokes)

Если у вас есть более длинный список или более одного '', то этот ответ, очевидно, меняется. Но подробностей у меня нет, поэтому я не знаю.

0 голосов
/ 29 мая 2020
jokes = ['First joke', 'Still first', '', 'Second Joke', 'Still second joke', 'Still 2nd joke']
jokes2 = []
for i in range(len(jokes) // 2):
    jokes2.append(jokes[2 * i] + ' \n ' + jokes[2 * i + 1])
print(jokes2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...