Объедините некоторые элементы списка в Списке Python

Можно также установить глобальное, игнорируют шаблон в конфигурационном файле SVN.

35
задан Trilarion 29 November 2012 в 11:10
поделиться

4 ответа

Этот пример довольно расплывчатый, но, может быть, что-то вроде этого?

items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
items[3:6] = [''.join(items[3:6])]

В основном он выполняет операцию объединения (или присвоения срезу ). Он удаляет элементы с 3 по 6 и вставляет на их место новый список (в данном случае список с одним элементом, который является объединением трех элементов, которые были удалены.)

Для любого типа списка вы можете сделать это (с использованием оператора + для всех элементов, независимо от их типа):

items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
items[3:6] = [reduce(lambda x, y: x + y, items[3:6])]

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

35
ответ дан 27 November 2019 в 06:41
поделиться

На каком основании должно происходить слияние? Ваш вопрос довольно расплывчатый. Кроме того, я предполагаю, что a, b, ..., f должны быть строками, то есть 'a', 'b', ..., 'f'.

>>> x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> x[3:6] = [''.join(x[3:6])]
>>> x
['a', 'b', 'c', 'def', 'g']

Ознакомьтесь с документацией по последовательности типы , в частности типы изменяемых последовательностей . И, возможно, также о строковых методах .

50
ответ дан 27 November 2019 в 06:41
поделиться

мои телепатические способности не особенно велики, но вот что, я думаю, вам нужно:

def merge(list_of_strings, indices):
    list_of_strings[indices[0]] = ''.join(list_of_strings[i] for i in indices)
    list_of_strings = [s for i, s in enumerate(list_of_strings) if i not in indices[1:]]
    return list_of_strings

Я должен отметить, поскольку это может быть неочевидно, что это не то же самое, что предлагается в других ответах.

0
ответ дан 27 November 2019 в 06:41
поделиться

просто вариант

alist=["a", "b", "c", "d", "e", 0, "g"]
alist[3:6] = [''.join(map(str,alist[3:6]))]
print alist
5
ответ дан 27 November 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: