Объединить и объединить списки

  1. Самый простой способ конкатенации list1 и list2 :

     merged = list1 + list2 
  2. zip возвращает список кортежей, где I-й кортеж содержит I-й элемент из каждого из аргументов последовательностей или итерируемыми:

     alist = ['a1', 'a2', 'a3']
    blist = ['b1', 'b2', 'b3']
    
    for a, b in zip(alist, blist):
        print(a, b)
    
    # Output:
    # a1 b1
    # a2 b2
    # a3 b3
    
     

    Если списки имеют разную длину, результат будет включать в себя столько элементов, сколько самый короткий:

     alist = ['a1', 'a2', 'a3']
    blist = ['b1', 'b2', 'b3', 'b4']
    for a, b in zip(alist, blist):
        print(a, b)
    
    # Output:
    # a1 b1
    # a2 b2
    # a3 b3
    
    alist = []
    len(list(zip(alist, blist)))
    
    # Output:
    # 0
    
     

    Для заполнения списков неравной длины к самой длинной один с None S Использовать itertools.zip_longest ( itertools.izip_longest в Python 2)

     alist = ['a1', 'a2', 'a3']
    blist = ['b1']
    clist = ['c1', 'c2', 'c3', 'c4']
    
    for a,b,c in itertools.zip_longest(alist, blist, clist):
        print(a, b, c)
    
    # Output: 
    # a1 b1 c1
    # a2 None c2
    # a3 None c3
    # None None c4 
  1. Вставить в определенный индекс значения:

      alist = [123, 'xyz', 'zara', 'abc']
     alist.insert(3, [2009])
     print("Final List :", alist)
    
     

    Выход:

      Final List : [123, 'xyz', 'zara', 2009, 'abc']