Python – 将值列表元素转换为列表记录
有时,在使用Python字典时,我们可能会遇到一个问题,即我们需要将嵌套列表值转换为单独的记录,以包含另一层嵌套来容纳数据。这类问题可以应用在数据领域,例如 Web 开发和机器学习。让我们讨论可以执行此任务的某些方式。
Input : test_dict = {‘gfg’ : [4, 5], ‘best’ : [8, 10, 7, 9]}
Output : {‘best’: [{8: []}, {10: []}, {7: []}, {9: []}], ‘gfg’: [{4: []}, {5: []}]}
Input : test_dict = {‘gfg’ : [7]}
Output : {‘gfg’: [{7: []}]}
方法 #1:使用循环 + enumerate()
上述功能的组合可以用来解决这个问题。这是一种蛮力方法,我们迭代所有列表并为每个值创建记录列表。
# Python3 code to demonstrate working of
# Convert Value list elements to List records
# Using loop + enumerate()
# initializing dictionary
test_dict = {'gfg' : [4, 5], 'is' : [8], 'best' : [10]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Convert Value list elements to List records
# Using loop + enumerate()
for ele in test_dict.values():
for idx, val in enumerate(ele):
ele[idx] = {val: []}
# printing result
print("The converted dictionary is : " + str(test_dict))
The original dictionary : {‘best’: [10], ‘is’: [8], ‘gfg’: [4, 5]}
The converted dictionary is : {‘best’: [{10: []}], ‘is’: [{8: []}], ‘gfg’: [{4: []}, {5: []}]}
方法 #2:使用字典理解 + items()
这是解决此问题的速记方法。在此,字典是使用字典理解创建的,字典项是使用 items() 提取的。
# Python3 code to demonstrate working of
# Convert Value list elements to List records
# Using dictionary comprehension + items()
# initializing dictionary
test_dict = {'gfg' : [4, 5], 'is' : [8], 'best' : [10]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Convert Value list elements to List records
# Using dictionary comprehension + items()
res = {key: [{val: []} for val in sub] for key, sub in test_dict.items()}
# printing result
print("The converted dictionary is : " + str(res))
The original dictionary : {‘best’: [10], ‘is’: [8], ‘gfg’: [4, 5]}
The converted dictionary is : {‘best’: [{10: []}], ‘is’: [{8: []}], ‘gfg’: [{4: []}, {5: []}]}