#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)]
Комментариев нет:
Отправить комментарий