Python – 按元素分组连续范围索引
当需要获取列表中元素的连续范围组索引时,会创建一个默认字典。使用了一个简单的迭代,以及“groupby”方法、“len”方法、“list”方法和“append”方法。
示例
以下是相同的演示 —
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)
输出
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)]})
说明
将所需包导入到环境中。
定义一个整数列表并将其显示在控制台上。
将一个值初始化为 0。
创建一个默认字典。
通过对其应用“groupby”方法来迭代列表。
将已初始化的值附加到空字典中。
这将作为输出显示在控制台上。
广告