从Python中的单元素字典中提取键名

bho*_*ben 3 python dictionary python-2.7

如果我知道我的字典总是有一个元素,有没有办法在不通过列表的情况下提取键名称?我目前正在这样做。

data = {'foo': [1, 2, 3]}
key_name = data.keys()[0]
Run Code Online (Sandbox Code Playgroud)

有没有更有效的技术?

fal*_*tru 5

迭代字典产生键。

使用nextiter

>>> data = {'foo': [1, 2, 3]}
>>> next(iter(data))
'foo'
Run Code Online (Sandbox Code Playgroud)

基准:

In [1]: data = {'foo': [1, 2, 3]}

In [2]: %timeit next(iter(data))
1000000 loops, best of 3: 197 ns per loop

In [3]: %timeit data.keys()[0]
10000000 loops, best of 3: 155 ns per loop

In [4]: %timeit data.iterkeys().next()
1000000 loops, best of 3: 226 ns per loop

In [9]: %timeit k, = data.keys()
10000000 loops, best of 3: 151 ns per loop

In [10]: %timeit k, = data    # <--- fastest
10000000 loops, best of 3: 81.4 ns per loop
Run Code Online (Sandbox Code Playgroud)