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