Sử dụng zip[]
và
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
0:In [1]: l = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
In [2]: [sum[x] for x in zip[*l]]
Out[2]: [25, 20]
or:
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
Kết quả
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
1:In [16]: l = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]*1000
In [17]: %timeit [sum[x] for x in zip[*l]]
1000 loops, best of 3: 1.46 ms per loop
In [18]: %timeit [sum[x] for x in izip[*l]] #prefer itertools.izip
1000 loops, best of 3: 1.28 ms per loop
In [19]: %timeit map[sum, zip[*l]]
100 loops, best of 3: 1.48 ms per loop
In [20]: %timeit map[sum, izip[*l]] #prefer itertools.izip
1000 loops, best of 3: 1.29 ms per loop
Tổng danh sách các phần tử Tuples trong Python #
Để tổng hợp một danh sách các phần tử Tuples-Wise:
- Sử dụng chức năng
2 để lấy một bộ lặp của các bộ dữ liệu với các mục tương ứng.In [4]: map[sum, zip[*l]] Out[4]: [25, 20]
- Sử dụng một danh sách hiểu để lặp lại trên Itable.
- Trên mỗi lần lặp, truyền tuple đến hàm
0.In [4]: map[sum, zip[*l]] Out[4]: [25, 20]
Copied!
list_of_tuples = [[1, 2], [3, 4], [5, 6]] # 👇️ [[1, 3, 5], [2, 4, 6]] print[list[zip[*list_of_tuples]]] result = [sum[tup] for tup in zip[*list_of_tuples]] print[result] # 👉️ [9, 12]
Hàm zip lặp lại trên một số vòng lặp song song và tạo ra các bộ dữ liệu với một mục từ mỗi mục có thể.
Copied!
list_of_tuples = [[1, 2], [3, 4], [5, 6]] # 👇️ [[1, 3, 5], [2, 4, 6]] print[list[zip[*list_of_tuples]]]
Chúng tôi đã sử dụng toán tử giải nén
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
4 để giải nén các bộ dữ liệu trong cuộc gọi đến hàm zip[]
.Copied!
list_of_tuples = [[1, 2], [3, 4], [5, 6]] # 👇️ [1, 2] [3, 4] [5, 6] print[*list_of_tuples]
Toán tử giải nén * có thể giải quyết được cho phép chúng tôi giải nén các cuộc gọi chức năng có thể lặp lại, trong toàn bộ và trong các biểu thức của máy phát.
Bạn có thể tưởng tượng rằng hàm zip[]
lặp lại trên các bộ dữ liệu, lấy 1 mục từ mỗi bộ.
Copied!
list_of_tuples = [[1, 2], [3, 4], [5, 6]] # 👇️ [[1, 3, 5], [2, 4, 6]] print[list[zip[*list_of_tuples]]]
Bộ phận đầu tiên trong danh sách bao gồm các phần tử trong mỗi bộ có chỉ số
7 và bộ thứ hai bao gồm các phần tử trong mỗi bộ có chỉ số là In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
8.In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
Bước cuối cùng là sử dụng danh sách hiểu biết để lặp lại đối tượng
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
2 và tổng hợp mỗi tuple.Copied!
list_of_tuples = [[1, 2], [3, 4], [5, 6]] # 👇️ [[1, 3, 5], [2, 4, 6]] print[list[zip[*list_of_tuples]]] result = [sum[tup] for tup in zip[*list_of_tuples]] print[result] # 👉️ [9, 12]
Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.
Hàm tổng có thể lặp lại, tổng số các mục của nó từ trái sang phải và trả về tổng số.
Trên mỗi lần lặp, chúng tôi chuyển bộ tuple hiện tại cho hàm
In [4]: map[sum, zip[*l]]
Out[4]: [25, 20]
0 và nhận được tổng số.Bạn có thể sử dụng phương pháp này với một danh sách lưu trữ các bộ dữ liệu có độ dài tùy ý.
Copied!
list_of_tuples = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 👇️ [[1, 4, 7], [2, 5, 8], [3, 6, 9]] print[list[zip[*list_of_tuples]]] result = [sum[tup] for tup in zip[*list_of_tuples]] print[result] # 👉️ [12, 15, 18]