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

How can I get dictionary key as variable directly in Python (not by searching from value)?

很抱歉这个基本问题,但是我在这上面的搜索除了如何根据字典的值获取字典的键之外,没有找到其他任何我不喜欢使用的,因为我只想得到键的文本/名称,并且担心如果字典有很多条目,按值搜索可能会返回2个或更多的键…我想做的是:

1
2
3
4
5
6
mydictionary={'keyname':'somevalue'}
for current in mydictionary:

   result = mydictionary.(some_function_to_get_key_name)[current]
   print result
  "keyname"

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

我看过下面的方法,但这似乎只是返回键的值

1
get(key[, default])


您应该迭代键:

1
2
for key in mydictionary:
   print"key: %s , value: %s" % (key, mydictionary[key])


如果要打印密钥和值,请使用以下选项:

1
2
for key, value in my_dict.iteritems():
    print key, value


The reason for this is that I am printing these out to a document and I want to use the key name and the value in doing this

基于上述要求,我建议:

1
2
3
4
5
keys = mydictionary.keys()
keys.sort()

for each in keys:
    print"%s: %s" % (each, mydictionary.get(each))


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

1
d = {'age':24}

然后你可以得到

1
field, value = d.items()[0]

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

1
key = list(d.keys())[0]


keys=[i for i in mydictionary.keys()]或江户十一〔一〕号


就这么简单:

1
2
mydictionary={'keyname':'somevalue'}
result = mydictionary.popitem()[0]

你将修改你的词典,应该先把它复印一份。


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

1
2
for i in D:
    print"key: %s, value: %s" % (i, D[i])


您可以简单地使用*,它将解压字典键。例子:

1
2
3
d = {'x': 1, 'y': 2}
t = (*d,)
print(t) # ('x', 'y')


我有时做的是创建另一个字典,以便能够访问我认为需要作为字符串访问的任何内容。然后,我迭代多个字典,匹配要构建的键,例如用第一列作为描述的表。

1
2
3
4
5
dict_names = {'key1': 'Text 1', 'key2': 'Text 2'}
dict_values = {'key1': 0, 'key2': 1}

for key, value in dict_names.items():
    print('{0} {1}'.format(dict_names[key], dict_values[key])

您可以很容易地使用大量的字典来匹配数据(我喜欢这样一个事实:使用字典,您总是可以引用一些众所周知的键名)

是的,我使用字典来存储函数的结果,所以我不需要每次只调用它们一次就运行这些函数,然后随时访问结果。

编辑:在我的示例中,键名并不重要(我个人喜欢使用相同的键名,因为从任何匹配的字典中选择一个值都比较容易),只要确保每个字典中的键数相同即可。


对于python 3如果你只想拿到钥匙,就用这个。如果需要值,请将print(key)替换为print(values)。

1
2
for key,value in my_dict:
  print(key)

轻松更改键和值的位置,然后使用值获取键,在字典中,键可以有相同的值,但它们(键)应该不同。例如,如果您有一个列表,它的第一个值是问题的关键,其他值是第一个值的规格:

1
list1=["Name",'ID=13736','Phone:1313','Dep:pyhton']

您可以通过以下循环轻松地在字典中保存和使用数据:

1
2
3
4
5
data_dict={}
for i in range(1, len(list1)):
     data_dict[list1[i]]=list1[0]
print(data_dict)
{'ID=13736': 'Name', 'Phone:1313': 'Name', 'Dep:pyhton': 'Name'}

然后您可以根据任何输入值找到键(名称)。