Вот способы сжать и заархивировать два списка списков в Python:
Содержание
- Способ 1: использование map() + __add__
- Способ 2: использование itertools.chain() + zip()
- Способ 3: с помощью понимания списка с методом Extend()
- Способ 4: применение цикла для перебора обоих списков и объединения подсписков
- Способ 5: с помощью numpy.array() и numpy.concatenate()
- Способ 6: применение понимания списка с распаковкой и zip()
Способ 1: использование map() + __add__
|
1 2 3 4 5 6 7 8 9 10 |
list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] print("The original list 1 is : " + str(list1)) print("The original list 2 is : " + str(list2)) res = list(map(list.__add__, list1, list2)) print("The modified zipped list is : " + str(res)) |
Выход
|
1 2 3 4 |
The original list 1 is : [[11, 31], [41, 51], [15, 16]] The original list 2 is : [[71, 91], [31, 21], [31, 10]] The modified zipped list is : [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
Способ 2: использование itertools.chain() + zip()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import itertools list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] print("The original list 1 is : " + str(list1)) print("The original list 2 is : " + str(list2)) res = [list(itertools.chain(*i)) for i in zip(list1, list2)] print("The modified zipped list is : " + str(res)) |
Выход
|
1 2 3 4 |
The original list 1 is : [[11, 31], [41, 51], [15, 16]] The original list 2 is : [[71, 91], [31, 21], [31, 10]] The modified zipped list is : [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
Способ 3: с помощью понимания списка с методом Extend()
|
1 2 3 4 5 6 7 8 9 10 11 |
import itertools list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] res = [x.extend(y) for x, y in zip(list1, list2)] print("Original list 1:", list1) print("Original list 2:", list2) print("Modified list:", list1) |
Выход
|
1 2 3 4 |
Original list 1: [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] Original list 2: [[71, 91], [31, 21], [31, 10]] Modified list: [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
Способ 4: применение цикла для перебора обоих списков и объединения подсписков
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import itertools list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] res = [] for i in range(len(list1)): concatenated_sublist = list1[i] + list2[i] res.append(concatenated_sublist) print("The modified zipped list is:", res) |
Выход
|
1 |
The modified zipped list is: [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
Способ 5: с помощью numpy.array() и numpy.concatenate()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import itertools import numpy as np list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] arr1 = np.array(list1) arr2 = np.array(list2) # Concatenating the numpy arrays along axis 1 concatenated_arr = np.concatenate((arr1, arr2), axis=1) res = concatenated_arr.tolist() print(res) |
Выход
|
1 |
[[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
Способ 6: применение понимания списка с распаковкой и zip()
|
1 2 3 4 5 6 7 8 |
list1 = [[11, 31], [41, 51], [15, 16]] list2 = [[71, 91], [31, 21], [31, 10]] res = [[*x, *y] for x, y in zip(list1, list2)] # Printing result print("The modified zipped list is : " + str(res)) |
Выход
|
1 |
The modified zipped list is : [[11, 31, 71, 91], [41, 51, 31, 21], [15, 16, 31, 10]] |
