Python|遍历值列表字典
在使用字典时,我们可能需要遍历列表,这些列表位于字典的键中。此类问题可能发生在 Web 开发领域。让我们讨论一些可以解决这个问题的方法。
方法#1:使用列表推导
列表推导可用于执行此特定任务。它只是传统嵌套循环的简写。我们迭代每个键的列表并存储结果。
# Python3 code to demonstrate working of
# Iterating through value lists dictionary
# Using list comprehension
# Initialize dictionary
test_dict = {'gfg' : [1, 2], 'is' : [4, 5], 'best' : [7, 8]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Using list comprehension
# Iterating through value lists dictionary
res = [[i for i in test_dict[x]] for x in test_dict.keys()]
# printing result
print("The list values of keys are : " + str(res))
输出 :
The original dictionary : {‘best’: [7, 8], ‘is’: [4, 5], ‘gfg’: [1, 2]}
The list values of keys are : [[7, 8], [4, 5], [1, 2]]
方法#2:使用from_iterable() + product() + items()
上述功能的组合可用于执行此特定任务。 from_iterable()
可用于减少内部循环,而items
函数用于提取字典中的键值对。
# Python3 code to demonstrate working of
# Iterating through value lists dictionary
# Using from_iterable() + product() + items()
import itertools
# Initialize dictionary
test_dict = {'gfg' : [1, 2], 'is' : [4, 5], 'best' : [7, 8]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Iterating through value lists dictionary
# Using from_iterable() + product() + items()
res = []
for key, value in (
itertools.chain.from_iterable(
[itertools.product((k, ), v) for k, v in test_dict.items()])):
res.append(value)
# printing result
print("The list values of keys are : " + str(res))
输出 :
The original dictionary : {‘best’: [7, 8], ‘is’: [4, 5], ‘gfg’: [1, 2]}
The list values of keys are : [7, 8, 1, 2, 4, 5]