📜  Python – 通过前缀分组将列表转换为键值列表

📅  最后修改于: 2022-05-13 01:54:49.039000             🧑  作者: Mango

Python – 通过前缀分组将列表转换为键值列表

给定一个列表,将其转换为连续的键值列表,按前缀分组。

方法:使用 groupby() + startswith() + lambda

上述功能的组合可以用来解决这个问题。在此,我们使用 groupby() 和 lambda 函数通过前缀对所有元素进行分组,以帮助执行分组的前缀分离。

Python3
# Python3 code to demonstrate working of 
# Convert List to key-value list by prefic grouping
# Using groupby() + startswith() + lambda
from itertools import groupby
  
# initializing list
test_list = ["GFG-1", 4, 6, 7, "GFG-2", 2, 3, "GFG-3", 9, 2, 4, 6]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing prefix 
temp = "GFG"
  
res = {}
# extracting result from grouped by prefix
for key, val in groupby(test_list, lambda ele: str(ele).startswith(temp)):
      
    # checking for existing key 
    if key:
        k = next(val)
    else:
        res[k] = list(val)
          
# printing result 
print("The constructed dictionary : " + str(res))


输出
The original list : ['GFG-1', 4, 6, 7, 'GFG-2', 2, 3, 'GFG-3', 9, 2, 4, 6]
The constructed dictionary : {'GFG-1': [4, 6, 7], 'GFG-2': [2, 3], 'GFG-3': [9, 2, 4, 6]}