如何直接在Python中获取字典键作为变量(而不是从值中搜索)?

Ric*_*ick 175 python dictionary key

对于这个基本问题我很抱歉,但我对此的搜索除了如何根据其价值得到字典的密钥之外没有任何其他内容,我不想使用它,因为我只是想要密钥的文本/名称而我担心搜索如果字典有很多条目,则按值可能最终返回2个或更多键...我想要做的是:

mydictionary={'keyname':'somevalue'}
for current in mydictionary:

   result = mydictionary.(some_function_to_get_key_name)[current]
   print result
   "keyname"
Run Code Online (Sandbox Code Playgroud)

这样做的原因是我将这些打印到文档中,我想在执行此操作时使用键名和值

我已经看到了下面的方法,但这似乎只是返回键的值

get(key[, default])
Run Code Online (Sandbox Code Playgroud)

sys*_*out 225

您应该使用以下代码迭代键:

for key in mydictionary:
   print "key: %s , value: %s" % (key, mydictionary[key])
Run Code Online (Sandbox Code Playgroud)

  • 你可以在mydictionary中写一下`for key:` (9认同)
  • 在python 3.6中:`print(f"key:{key},value:{mydictionary [key]}")` (6认同)

Esc*_*alo 90

如果要打印键和值,请使用以下命令:

for key, value in my_dict.iteritems():
    print key, value
Run Code Online (Sandbox Code Playgroud)

  • 对于Python 3:items()而不是iteritems() (20认同)

Man*_*dan 80

这样做的原因是我将这些打印到文档中,我想在执行此操作时使用键名和值

基于上述要求,我建议这样做:

keys = mydictionary.keys()
keys.sort()

for each in keys:
    print "%s: %s" % (each, mydictionary.get(each))
Run Code Online (Sandbox Code Playgroud)


小智 42

如果字典包含这样的一对:

d = {'age':24}
Run Code Online (Sandbox Code Playgroud)

然后你可以得到

field, value = d.items()[0]
Run Code Online (Sandbox Code Playgroud)

对于Python 3.5,请执行以下操作:

key = list(d.keys())[0]
Run Code Online (Sandbox Code Playgroud)

  • Python3.5:`TypeError:'dict_items'对象不支持索引` (4认同)
  • 在Python3中,这适用于一对dicts:`key = list(d.keys())[0]` (2认同)

kur*_*ian 12

keys=[i for i in mydictionary.keys()] 要么 keys = list(mydictionary.keys())


Lib*_*ert 8

就如此容易:

mydictionary={'keyname':'somevalue'}
result = mydictionary.popitem()[0]
Run Code Online (Sandbox Code Playgroud)

您将修改您的字典,并应首先复制它


Geo*_*org 6

您可以简单地使用*它来解开字典键。例:

d = {'x': 1, 'y': 2}
t = (*d,)
print(t) # ('x', 'y')
Run Code Online (Sandbox Code Playgroud)


spl*_*ena 5

迭代字典(i)将返回密钥,然后使用它(i)获取值

for i in D:
    print "key: %s, value: %s" % (i, D[i])
Run Code Online (Sandbox Code Playgroud)