Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Конкатенация элементов двух списков в один (по индексу)

#python #list #список


Есть два списка одинаковой длины:

l1 = ["Hello", "Arcady", "My"]
l2 = ["World", "Petrovich", "Name"]


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

l3 = ["Hello World", "Arcady Petrovich", "My Name"]


Пытаюсь сделать через цикл, но он не правильно работает

def Concat(l1, l2):

    l3 = []
    for t1 in l1:
        for t2 in l2:
            if t2!="":
                l3.append(t1 + " + " + t2)
            else:
                l3.append(t1)
    return l3

    


Ответы

Ответ 1



l1 = ["Hello", "Arcady", "My"] l2 = ["World", "Petrovich", "Name"] l3 = [' '.join(x) for x in zip(l1, l2)] print(l3) # ['Hello World', 'Arcady Petrovich', 'My Name'] Алгоритм: zip составит список пар: list(zip(l1, l2)) # [('Hello', 'World'), ('Arcady', 'Petrovich'), ('My', 'Name')] В цикле будут перебираться пары и через join объединены: ' '.join(('Hello', 'World')) # 'Hello World' Если без функции, то: l3 = [x[0] + ' ' + x[1] for x in zip(l1, l2)] или: l3 = [a + ' ' + b for a, b in zip(l1, l2)]

Комментариев нет:

Отправить комментарий