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

用Python从字典中获取值的最佳方法,python,dictionary,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': []} 我需要对每个值进行查询。 在Pytho

为这个可能是无意义的问题道歉

我有一句话:

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
我认为可以做得更好。
多谢各位

您可以使用遍历dict的键和值

for key, value in info.items():
    #do something with either the key, value or both
(在Python 2中,您可能更喜欢使用而不是
items()

如果您根本不需要使用这些键,那么可以使用(或者对于Python2)


也许一个列表理解对你有用;在不知道“使用j进行查询”需要什么的情况下,是不可能知道的。

您可以使用遍历dict的键和值

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

如果您根本不需要使用这些键,那么可以使用(或者对于Python2)


也许一个列表理解对你有用;在不知道“使用j进行查询”需要什么的情况下是不可能判断的。

是否要迭代每个值中的列表元素?如果不使用该键,可以直接使用:

>>> [option for v in info.values() for option in v]
['option1', 'option2', 'option3', 'option4', 'option5', 'option6', 'option7', 'option8', 'option9', 'option10', 'option11']

是否要迭代每个值中的列表元素?如果不使用该键,可以直接使用:

>>> [option for v in info.values() for option in v]
['option1', 'option2', 'option3', 'option4', 'option5', 'option6', 'option7', 'option8', 'option9', 'option10', 'option11']
对于Python2.x

for key,values in info.iteritems():
    print keys,values
使用dict.iteritems()可以迭代字典中的键和值,并进行查询或其他操作

Dict:python2.x的字典名*

for key,values in info.iteritems():
    print keys,values
使用dict.iteritems()可以迭代字典中的键和值,并进行查询或其他操作


Dict:字典的名称*

您可以这样做:

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

您可以这样做:

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

您能详细说明一下“我需要对每个值进行查询”吗?当然,我需要通过将该元素作为参数发送来进行查询。Ex
query=sql.get\u price(j)
您能详细说明一下“我需要对每个值进行查询”吗?当然,我需要通过将该元素作为参数发送来进行查询。Ex
query=sql.get\u price(j)
未给出解释。未给出解释。