在Python中从字典中获取值的最佳方法

时间:2017-12-04 08:57:03

标签: python dictionary

对潜在的无聊问题道歉。

我有这个词:

info = {'a': [u'option1'], 'b': [u'option2', u'option3'], 'c': [], 'd': [], 'e': [], 'f': [u'option4', u'option5', u'option6', u'option7', u'option8', u'option9', u'option10', u'option11'], 'g': [], 'h': []}

我需要对每个值进行查询。 在Python中,获取值的最佳方法是什么?

我目前这样做:

keys = info.keys ()
for i in keys:
    for j in info [i]:
        # Make query with j

我认为可以做得更好。 非常感谢你!

5 个答案:

答案 0 :(得分:3)

您可以使用items()迭代dict的键和值。

for i, js in info.items():
    for j in js:
        # Make query with j

(在Python 2中,您可能更喜欢使用iteritems()而不是items()。)

如果您根本不需要使用密钥,则可以使用values(或itervalues用于Python 2)。

for js in info.values():
    for j in js:
        # Make query with j

列表理解可能对你有用;如果不知道“用j进行查询”需要什么,就不可能分辨出来。

答案 1 :(得分:1)

您想迭代每个值中的列表元素吗?如果您不使用密钥,则可以直接使用dict.values()

SyncCustomers

答案 2 :(得分:0)

for key, value in info.items():
    #do something with either the key, value or both

答案 3 :(得分:0)

对于Python 2.x

for key,values in info.iteritems():
    print keys,values

使用 dict.iteritems(),您可以遍历字典中的键和值并进行查询或任何操作。

Dict:字典的名称*

答案 4 :(得分:0)

你可以这样做:

for vals in info.values():
    for j in vals:
        # make queries with j

您可以获取所有值的列表,如下所示:

values = [x for vals in info.values() for x in vals]

然后你可以使用

for j in values:
     # make queries with j