目录
python 字典连续 key提取
def extract_consecutive_keys(data):
# 将字典的键按升序排序
keys = sorted(data.keys())
consecutive_groups = []
current_group = [keys[0]] # 第一个元素开始一个新的组
# 遍历剩余的键
for i in range(1, len(keys)):
if keys[i] == keys[i - 1] + 1: # 如果当前键与前一个键连续
current_group.append(keys[i])
else: # 如果不连续,开始一个新的组
consecutive_groups.append(current_group)
current_group = [keys[i]]
# 添加最后一组
consecutive_groups.append(current_group)
return consecutive_groups
# 示例数据
aaa = {1: 0, 2: 0, 4: 0, 3: 0, 6: 0, 9: 0, 8: 0, 7: 0}
# 提取连续的键
consecutive_keys = extract_consecutive_keys(aaa)
# 打印结果
print(consecutive_keys)
结果:
[[1, 2, 3, 4], [6, 7, 8, 9]]
key和value也提取:
def extract_consecutive_keys(data):
# 将字典的键按升序排序
keys = sorted(data.keys())
consecutive_groups = []
consecutive_keys=[]
current_group = [data[keys[0]]] # 第一个元素开始一个新的组
current_key = [keys[0]]
# 遍历剩余的键
for i in range(1, len(keys)):
if keys[i] == keys[i - 1] + 1: # 如果当前键与前一个键连续
current_group.append(data[keys[i]])
current_key.append(keys[i])
else: # 如果不连续,开始一个新的组
consecutive_groups.append(current_group)
consecutive_keys.append(current_key)
current_group = [data[keys[i]]]
current_key = [keys[i]]
# 添加最后一组
consecutive_groups.append(current_group)
consecutive_keys.append(current_key)
return consecutive_keys,consecutive_groups
# 示例数据
aaa = {1: 0, 2: 0, 4: 0, 3: 0, 6: 0, 9: 0, 8: 0, 7: 0}
# 提取连续的键
consecutive_keys,consecutive_groups = extract_consecutive_keys(aaa)
# 打印结果
print(consecutive_keys)
print(consecutive_groups)
结果:
[[1, 2, 3, 4], [6, 7, 8, 9]]
[[0, 0, 0, 0], [0, 0, 0, 0]]