从 python 中的字典的多个键中获取特定值的唯一名称

Getting the unique names of a specific value from several keys of a dictionary in python

我在字典上有一些资料。字典中的每个键都有多个值,其中一个称为 'state' ,可以等于乔治亚州、华盛顿州等。我想获得唯一的州。我试过这样做但是我得到一个不正确的语法错误

s = set( value for key in r value = key['state'] )

如何获取所有状态?

编辑:

我拥有的数据结构实际上是一个字典列表,所以我想获取 r[0]['state']、r[1]['state'] 等的值,然后制作一个独特的列表。

所以你有一个字典,每个键值对在 value 里面有另一个字典,其中一个 "inner" 字典的键是 state?

在那种情况下:

my_dict = {'somekey': {'a':1,'b':2, 'state':'georgia'}, 'otherkey': {'a':1,'b':2, 'state':'washington'}}
[val['state'] for key, val in my_dict.iteritems()]
['georgia', 'washingon']

只是猜测你的数据结构,但如果是这样的话:

r = {'home': {'address': '123 Oak Avenue', 'city': 'My town', 'state': 'State'},
     'work': {'address': '456 Main Street', 'city': 'Big city', 'state': 'State'}}

然后您可以使用它来检索状态:

s = set(r[key]['state'] for key in r)

根据你的评论,因为你有一个字典列表,你可以使用 map 函数并向它传递 dict.get 方法,以获得所有 state 值,然后你可以循环set :

中的值
s = set( value for value in map(lambda x:x.get('state'),r))

或者要使用 lambda 功能,您可以使用 operator.itemgetter :

from operator import itemgetter
s = set( value for value in map(itemgetter('state'),r))