如何从字典中逐一获取一个或多个键?
例如:
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
进一步采取措施,该怎么办?
答案 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'