Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Danh sách này là một container quan trọng và được sử dụng gần như trong mọi mã lập trình hàng ngày cũng như phát triển web, nó được sử dụng nhiều hơn, nhiều hơn là yêu cầu làm chủ nó và do đó kiến thức về hoạt động của nó là cần thiết. Đưa ra một danh sách các danh sách, chương trình để cho rằng sẽ trả lại số tiền là danh sách cuối cùng. Using Naive method
Hãy cùng xem một số phương pháp để tổng hợp danh sách danh sách và danh sách trả lại.
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]6
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]7
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]8
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]0
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]2
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]5
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]6
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]7
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]6
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]8
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
0In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
1Phương pháp số 1: Sử dụng phương pháp ngây thơ
Các
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
4Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
7In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
8=
In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
0In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
1In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
2 In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
3In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
4 In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
5In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1____49
In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
0In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
2In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
3In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
4=
In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
3L
4In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3L
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6=
0Output:
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]
In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
3In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
2 In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
9In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
4 In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
5In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
9In [4]: for i in itertools.izip_longest[*l, fillvalue=0]:
...: print i
...:
[3, 1, 9]
[7, 4, 8]
[2, 0, 7]
[0, 0, 10]
6Method #2: Using numpy array
A numpy is a general-purpose array-processing package. It provides a high-performance multidimensional array object, and tools for working with these arrays.
In [4]: for i in itertools.izip_longest[*l, fillvalue=0]:
...: print i
...:
[3, 1, 9]
[7, 4, 8]
[2, 0, 7]
[0, 0, 10]
7In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
4=
In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
4L
1 L
2& nbsp; Phương pháp #2: Sử dụng Numpy Arraya Numpy là gói xử lý mảng đa năng. Nó cung cấp một đối tượng mảng đa chiều hiệu suất cao và các công cụ để làm việc với các mảng này.
[[
2
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]7
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]8
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]0
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]2
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]5
=
1 =
2
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
4Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3=
3Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]15
Is
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3L
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6=
0Output:
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]
[[
2
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]7
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]6
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]8
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1____3030
Method #3: Using
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]31 and list comprehension
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
8=
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]18
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]19
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3=
3Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1____47
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]24
& nbsp; Phương pháp #3: Sử dụng
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]31 và danh sách hiểu hiểu
In [4]: for i in itertools.izip_longest[*l, fillvalue=0]:
...: print i
...:
[3, 1, 9]
[7, 4, 8]
[2, 0, 7]
[0, 0, 10]
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]7
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]6
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]8
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
0In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
1In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
4Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3=
3Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]15
=
3 =
[[
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]0
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1__12
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
2In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
3L
7Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]1
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
6=
0Output:
Initial List - [[1, 2, 3], [4, 5, 6], [7, 8, 9]] final list - [12, 15, 18]
Bạn có thể thử điều này:
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum[i] for i in zip[*l]]
Out[10]: [13, 19, 14]
Điều này sử dụng kết hợp
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]73 và
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]75 để giải nén danh sách và sau đó zip các mục theo chỉ mục của họ. Sau đó, bạn sử dụng một danh sách hiểu để lặp lại thông qua các nhóm các chỉ số tương tự, tổng hợp chúng và trở lại ở vị trí 'bản gốc' của chúng.
Hy vọng làm cho nó rõ ràng hơn một chút, đây là những gì xảy ra khi bạn lặp lại thông qua
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]86:
In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
Trong trường hợp danh sách có độ dài không đồng đều, bạn có thể sử dụng
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]87 với
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]88 của
In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7 - về cơ bản, điều này điền vào các chỉ số bị thiếu bằng In [13]: for i in zip[*l]:
....: print i
....:
....:
[3, 1, 9]
[7, 4, 8]
[2, 5, 7]
7, cho phép bạn tổng hợp tất cả 'cột':In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum[i] for i in itertools.izip_longest[*l, fillvalue=0]]
Out[3]: [13, 19, 9, 10]
Trong trường hợp này, đây là những gì lặp đi lặp lại trên
Initial List - [[1 2 3] [4 5 6] [7 8 9]] final list - [12 15 18]91 sẽ trông như thế nào:
In [4]: for i in itertools.izip_longest[*l, fillvalue=0]:
...: print i
...:
[3, 1, 9]
[7, 4, 8]
[2, 0, 7]
[0, 0, 10]