마이딕트`가 비어 있지 않으면 임의의 요소에 다음과 같이 액세스합니다:
mydict[mydict.keys()[0]]
이 작업을 수행하는 더 좋은 방법이 있나요?
Python 3에서는 비파괴적으로 반복적으로 수행합니다:
next(iter(mydict.values()))
파이썬 2에서, 비파괴적으로 반복적으로:
mydict.itervalues().next()
파이썬 2와 3 모두에서 작동하도록 하려면 six
패키지를 사용하면 됩니다:
six.next(six.itervalues(mydict))
하지만 현재로서는 상당히 난해하고 저는 여러분의 코드를 더 선호합니다.
항목을 제거하려면 제거하세요:
key, value = mydict.popitem()
여기서는 'first'는 적절한 용어가 아닙니다. 딕셔너리는 정렬된 유형이 아니기 때문에 이것은
any` 항목입니다.
필요한 경우에만 액세스하려면 한 요소 (기술입니까 우연히, 이후 첫 번째 딕토스 오더할 보장되지 않습니다.) 에서 2_ _Python 이렇게 됩니다.
my_dict.keys()[0] -> key of "first" element
my_dict.values()[0] -> value of "first" element
my_dict.items()[0] -> (key, value) tuple of "first" element
유념하십시오 (www. best of my knowledge) 2 연속 통화 목록 파이썬 보장할 수는 없습니다 다음 방법 중 하나를 반환되므로 와 동일한 오더할. Python3 는 이를 지원하지 않습니다.
python 에서 3:
list(my_dict.keys())[0] -> key of "first" element
list(my_dict.values())[0] -> value of "first" element
list(my_dict.items())[0] -> (key, value) tuple of "first" element
Python3 있는 방법은.
dict.keys()
반환 값 (유형: # 39, ll, we& dict_keys () 의 구성원 중 1 때 이 방법을 통해 키 잡을라는데 오류가 잡을라는데 딕트:
dict.keys()[0]
TypeError: 'dict_keys' object does not support indexing
마침내, 나는 딕트스키스 변환 () 를 사용하여 멤버를 목록 1 @1st 목록 및 attaboy 스플라이스를 방법:
list(dict.keys())[0]
다른 사람들이 언급했듯이 딕셔너리는 순서가 보장되지 않기 때문에 '첫 번째 항목'이 없습니다(해시 테이블로 구현됨). 예를 들어 가장 작은 키에 해당하는 값을 원한다면 thedict[min(thedict)]
가 이를 수행합니다. 키가 삽입된 순서, 즉 첫 번째
로 가장 먼저 삽입된 것
을 의미하는 경우 파이썬 3.1에서는 곧 출시될 파이썬 2.7에도 포함된 collections.OrderedDict를 사용할 수 있으며, 이전 버전의 파이썬에서는 여기에서 찾을 수 있는 정렬 딕스트 백포트(2.4 이상)를 다운로드, 설치하여 사용하면 됩니다.
파이썬 3.7 이제 딕셔너리는 삽입 순서대로 정렬됩니다.
딕셔너리 순서를 둘러싼 문제를 무시하면 이 방법이 더 나을 수 있습니다:
next(dict.itervalues())
이렇게 하면 항목 조회와 사용하지 않는 키 목록 생성을 피할 수 있습니다.
next(iter(dict.values()))
항상 할 수 있습니다.
for k in sorted(d.keys()):
print d[k]
이 부여하느뇨 너희에의 일관되게 정렬할지 (with respect to builtin.hash () 내 생각) 에 있는 경우 정렬 집합이 키를 마무리라뇨 너회들 처리할 수 있습니다. 즉, 예를 들어 숫자 유형은 일관되게 정렬할지 경우에도 사전이므로 확장하십시오
예
# lets create a simple dictionary
d = {1:1, 2:2, 3:3, 4:4, 10:10, 100:100}
print d.keys()
print sorted(d.keys())
# add some other stuff
d['peter'] = 'peter'
d['parker'] = 'parker'
print d.keys()
print sorted(d.keys())
# some more stuff, numeric of different type, this will "mess up" the keys set order
d[0.001] = 0.001
d[3.14] = 'pie'
d[2.71] = 'apple pie'
print d.keys()
print sorted(d.keys())
참고로, 사전이 때 정렬할지 인쇄되었습니다. 그러나 항상 키세트 이스마프!
first_key, *rest_keys = mydict
하위 클래스화 딕트 '는' 한 가지 방법은 없지만 간편해집니다. 여기 제공할 경우 정수 영업사원이에요 [목록 (d) [명사]] ', 그렇지 않으면 이 반환되므로 사전 액세스하십시오 것으로 보고 있다.
class mydict(dict):
def __getitem__(self, value):
if isinstance(value, int):
return self.get(list(self)[value])
else:
return self.get(value)
d = mydict({'a': 'hello', 'b': 'this', 'c': 'is', 'd': 'a',
'e': 'test', 'f': 'dictionary', 'g': 'testing'})
d[0] # 'hello'
d[1] # 'this'
d['c'] # 'is'