Khi yêu cầu lấy phạm vi chỉ số liên tiếp được nhóm của các phần tử trong một danh sách, một chỉ định mặc định sẽ được tạo. Một phép lặp đơn giản, cùng với phương thức ‘groupby’, phương thức ‘len’, phương thức ‘list’ và các phương thức ‘append’ được sử dụng.
Ví dụ
Dưới đây là một minh chứng về điều tương tự -
from itertools import groupby from collections import defaultdict my_list = [63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0,9] print("The list is : " ) print(my_list) my_index = 0 my_result = defaultdict(list) for key, sub in groupby(my_list): element = len(list(sub)) my_result[key].append((my_index, my_index + element - 1)) my_index += element print("The resultant dictionary is : ") print(my_result)
Đầu ra
The list is : [63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0, 9] The resultant dictionary is : defaultdict(, {63: [(0, 0)], 12: [(1, 1)], 84: [(2, 2)], 91: [(3, 3)], 52: [(4, 4)], 39: [(5, 5)], 25: [(6, 6)], 27: [(7, 7)], 20: [(8, 8)], 11: [(9, 9)], 0: [(10, 10)], 9: [(11, 11)]})
Giải thích
-
Các gói bắt buộc được nhập vào môi trường.
-
Danh sách các số nguyên được xác định và hiển thị trên bảng điều khiển.
-
Giá trị được khởi tạo thành 0.
-
Một từ điển mặc định được tạo.
-
Danh sách được lặp lại bằng cách áp dụng phương thức "groupby" trên đó.
-
Giá trị đã khởi tạo được thêm vào từ điển trống.
-
Điều này được hiển thị dưới dạng đầu ra trên bảng điều khiển.