2
#some dictionary data{}
data = {1:[3,1,4,2,6]}

如何打印数据的密钥,即

print( key_of(data) ) #print in some ways.

输出:

1

到目前为止,我得到的是使用data.keys()函数,但是每当我使用该函数时,输出都会像:

dict_keys([1])

那么,该功能有什么问题。任何人都可以建议我的答案。?

4

2 回答 2

2

没有问题dict.keys,它返回一个类似于 Python3 中的对象的视图。您可以list()在 dict 上使用来获取键列表。

>>> data = {1:[3,1,4,2,6]}
>>> keys = list(data)
>>> keys
[1]
>>> keys[0]
1

注意:如果 dict 包含多个键,则顺序可以是任意的,并且keys[0]可以返回任何键。

>>> dic = {'a12': 1, 'sd':'sdfd', 'sdfsd': 'sdfsd'}
>>> list(dic)               #Arbitrarily ordered
['sdfsd', 'sd', 'a12']
于 2013-10-29T12:55:40.750 回答
2

只需这样做:

print(list(data))

打印所有键。如果要打印特定密钥,则必须搜索它:

print(next(key for key, value in data.items() if value == something))

请注意,不能保证键的顺序。

>>> data = {'a': 1, 'aa': 2, 'b': 3, 'cd': 4}
>>> list(data)
['cd', 'a', 'b', 'aa']
>>> data['f'] = 1
>>> list(data)
['cd', 'a', 'b', 'aa', 'f']
>>> del data['a']
>>> list(data)
['cd', 'b', 'aa', 'f']
>>> data[1] = 1
>>> list(data)
['cd', 1, 'b', 'aa', 'f']
>>> for c in ('cde', 'fgh', 'ijk', 'rmn'):
...     data[c] = 1
... 
>>> list(data)
[1, 'aa', 'cde', 'cd', 'rmn', 'b', 'ijk', 'fgh', 'f']

请注意键如何遵循字母顺序,以及插入的键并不总是附加到键列表中。在一些插入之后,一些密钥也被交换了。删除/插入键可以以不可预知的方式更改顺序。

于 2013-10-29T12:56:33.387 回答