Объединить некоторые элементы списка в списке Python по вводимому номеру - PullRequest
0 голосов
/ 13 апреля 2019

Мне трудно объединить элементы в списке Python по заданному номеру.

Я уже нашел решение для работы с определенным номером. Но я хочу работать с различными заданными числами (N).

т.е. Когда у меня есть список

['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']

Результат,

Когда N = 2

['There was', 'a farmer', 'who had', 'a dog', 'and cat', '.']

или N = 3

['There was a', 'farmer who had', 'a dog and', 'cat .']

Я бы предпочел, чтобы он модифицировал существующий список напрямую, без использования какого-либо модуля или библиотеки.

Любая помощь очень ценится!

Ответы [ 3 ]

0 голосов
/ 13 апреля 2019

Это самый простой способ, который я могу вспомнить:

my_list = ['a','b','c','d','e','f','g','h','i']
N = 3

my_list[0:N] = [''.join(my_list[0:N])]
0 голосов
/ 13 апреля 2019
    word_list = ['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']
    new_word_list = []
    N = int(input())
    for i in range(0, len(word_list), N):
        string = ''
        for j in (range(len(word_list) - i) if len(word_list) - i < N else range(N)):
            string = string + word_list[i + j] + ' '
         new_word_list.append(string)

     print(new_word_list)

Здесь я реализовал его, используя циклы basic для циклического перебора по списку, хотя должен был быть создан новый список.

0 голосов
/ 13 апреля 2019

Вот разумный способ сделать это.это действительно создает новый список.Поскольку это более эффективно, чем пытаться изменить оригинал

a = ['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']
n = 2
print([' '.join(a[i:i+n]) for i in range(0, len(a), n)])
n = 3
print([' '.join(a[i:i+n]) for i in range(0, len(a), n)])

Вывод:

['There was', 'a farmer', 'who had', 'a dog', 'and cat', '.']
['There was a', 'farmer who had', 'a dog and', 'cat .']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...