Python – 垂直分组值列表
有时,在使用Python字典时,我们可能会遇到需要将所有列表值垂直分组的问题,即类似索引。这类问题可以在许多领域都有应用,例如 Web 开发。让我们讨论一些可以解决这个问题的方法。
Input : test_dict = {‘Gfg’: [4, 8], ‘is’: [87, 2], ‘best’ : [14, 1]}
Output : [(4, 87, 14), (8, 2, 1)]
Input : test_dict = {‘Gfg’: [4, 6, 7, 8]}
Output : [(4, ), (6, ), (7, ), (8, )]
方法 #1:使用列表理解 + zip() + *
运算符
上述功能的组合可以用来解决这个问题。在此,我们使用 values() 执行提取值的任务,并且 zip() 用于在使用 *运算符解包后执行垂直分组。
# Python3 code to demonstrate working of
# Vertical Grouping Value Lists
# Using list comprehension + zip() + * operator
# initializing dictionary
test_dict = {'Gfg': [4, 5, 7], 'is': [8, 9, 10], 'best' : [10, 12, 14]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Vertical Grouping Value Lists
# Using list comprehension + zip() + * operator
res = [tuple(idx) for idx in zip(*test_dict.values())]
# printing result
print("The grouped values : " + str(res))
输出 :
The original dictionary is : {'Gfg': [4, 5, 7], 'is': [8, 9, 10], 'best': [10, 12, 14]}
The grouped values : [(4, 8, 10), (5, 9, 12), (7, 10, 14)]
方法 #2:使用list() + zip() + values()
上述功能的组合可以用来解决这个问题。在此,我们执行与上述方法类似的任务,不同之处在于使用 list() 而不是列表推导。
# Python3 code to demonstrate working of
# Vertical Grouping Value Lists
# Using list() + zip() + values()
# initializing dictionary
test_dict = {'Gfg': [4, 5, 7], 'is': [8, 9, 10], 'best' : [10, 12, 14]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Vertical Grouping Value Lists
# Using list() + zip() + values()
res = list(zip(*test_dict.values()))
# printing result
print("The grouped values : " + str(res))
输出 :
The original dictionary is : {'Gfg': [4, 5, 7], 'is': [8, 9, 10], 'best': [10, 12, 14]}
The grouped values : [(4, 8, 10), (5, 9, 12), (7, 10, 14)]