如何从字典中逐个获取键或​​值?

时间:2016-03-10 05:31:27

标签: python dictionary

如何从字典中逐一获取一个或多个键?

例如:

dictionary = {}
if x found in y:
    name = "simply"
    dictionary[name]={}
    bang = {'abc','dsw','lol'}
    dictionary[name]={bang}
for k in (dictionary):
    print (k)

如果我只想获得第一个键'abc'

,该怎么办?

我应该使用哪种方法,因为print(k[0])对我不起作用。 它只会打印所有键的第一个字母

当我致电dictionary["simply"]时,它会显示

abc

dsw

lol

如果我只想让abc进一步采取措施,该怎么办?

2 个答案:

答案 0 :(得分:1)

Python词典是无序的。如果你想要一个有序的字典,试试OrderedDict。

>> from collections import OrderedDict
>> d = OrderedDict()    
>> d['apple'] = 'red'  
>> d['banana']='white'     
>> d.items()[0]

>> output: ('apple', 'red')

答案 1 :(得分:0)

你正在制作一套而不是字典。如果你使用你的套装做dir,你会发现无法通过set中的名字获得某个键。所以你必须使用非内置集合。

>>> dictionary={'abc','dsw','lol'}
>>> type(dictionary)
<type 'set'>
>>> dir(dictionary)
['__and__', '__class__', '__cmp__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
>>> dictionary.pop()
'dsw'
>>>

您可以安装ordered-set来做到这一点。

执行pip install ordered-set然后您可以将它用于您的用例:

>>> from ordered_set import OrderedSet
>>> dir = OrderedSet(['abc','dsw','lol'])
>>> dir[0]
'abc'