나는 아래의 사전이 있습니다사전에 색인을 생성하는 방법은 무엇입니까?
colors = {
"blue" : "5",
"red" : "6",
"yellow" : "8",
}
을 어떻게 인덱스 사전의 첫 번째 항목을합니까?
colors[0]
은 명백한 이유 때문에 KeyError
을 반환합니다.
나는 아래의 사전이 있습니다사전에 색인을 생성하는 방법은 무엇입니까?
colors = {
"blue" : "5",
"red" : "6",
"yellow" : "8",
}
을 어떻게 인덱스 사전의 첫 번째 항목을합니까?
colors[0]
은 명백한 이유 때문에 KeyError
을 반환합니다.
사전은 파이썬에서 정렬되지 않습니다. 항목의 순서를 신경 쓰지 않고 색인을 통해 키나 값에 액세스하려는 경우 d.keys()[i]
및 d.values()[i]
또는 d.items()[i]
을 사용할 수 있습니다. 이 메서드는 각각 모든 키, 값 또는 항목의 목록을 만듭니다. 따라서 한 번 이상 필요하면 성능 향상을 위해 변수에 목록을 저장하십시오.)
항목, 파이썬 2.7부터는 collections.OrderedDict
을 사용할 수 있습니다. 또는 키로 액세스 할 필요가없는 경우 쌍 목록을 사용하십시오.
(왜 그런 식으로 당신의 숫자 문자열입니까?)
파이썬 2에서는'd.keys() [0]'대신'd.iterkeys(). next()'를 사용하여 키 하나를 지우지 않고 검사 할 수 있습니다. 사전이 거대한 경우 성능면에서 큰 차이를 만듭니다. 값과 항목도 마찬가지입니다. Python 2.7에서는 [dict view objects]도 사용할 수 있습니다. (http://docs.python.org/2/library/stdtypes.html#dictionary-view-objects) – simleo
Python 3에서 이러한 호출은 뷰를 반환합니다. 실제 목록이므로 list() 호출에서 래핑해야합니다. 그렇지 않으면 "TypeError : 'dict_values'객체가 인덱싱을 지원하지 않습니다."라는 메시지가 표시됩니다. 이것을 참조하십시오 S.O. 질문 : http://stackoverflow.com/questions/17431638/get-typeerror-dict-values-object-does-not-support-indexing-when-using-python – stifin
수정 사항 중 하나입니다. 색인을 생성 할 수 없습니다. items(), 적어도 파이썬 3에는 없다. –
dict
은 정렬되지 않으므로 사용자가 수 없습니다. .popitem()
을 사용하여 임의의 항목을 가져올 수 있지만 그 항목은 dict에서 제거됩니다.
'next (iter (d.items()))'('.iteritems()'는 파이썬 2에서 임의의 항목을 제공합니다 (내 테스트에서와 동일합니다. popitem은 이것을 사용하여 구현할 수 있습니다) 항목을 제거하지는 않습니다. – delnan
주문한 사전이 필요하면 odict을 사용할 수 있습니다.
odict는 keys(), values () 또는 items()에 대한 색인 생성을 지원하지 않습니다. – Konstantin
사전은 목록이 아닙니다.
목록에서 원하는 값을 얻으려면 enter foo[0] here
을 입력하면됩니다.
dicts에는 .value 및 .keys() 함수가 있습니다.
또한 dict를 반복 할 때마다 try/except를 사용하는 것이 더 좋습니다.
실제로 제가 정말로 도움이되는 새로운 솔루션을 발견했습니다. 특히 목록이나 데이터 세트의 특정 값의 색인에 관심이 있다면 사전 색인의 값을 설정할 수 있습니다! :
그냥 시계 :
list = ['a', 'b', 'c']
dictionary = {}
counter = 0
for i in list:
dictionary[i] = counter
counter += 1
print(dictionary) # dictionary = {'a':0, 'b':1, 'c':2}
이제 사전의 요소를 해결
(훨씬 빠른 일명) 일정 시간에 항목을 나귀에 앉아처럼 인덱스를 당길 수 HashMaps을의 힘을 통해 타고 즐기십시오.이제
dic = {1: "a", 2: "aa", 3: "aaa"}
내가 dic[10] = "b"
처럼 가면 생각이 있다면
사전
orderless이며, 다음이 항상
dic = {1:"a",2:"aa",3:"aaa",10:"b"}
처럼 추가하지 않습니다
와 같을 수 있습니다.
dic = {1: "a", 2: "aa", 3: "aaa", 10: "b"}
또는
dic = {1: "a", 2: "aa", 10: "b", 3: "aaa"}
또는
dic = {1: "a", 10: "b", 2: "aa", 3: "aaa"}
또는 그러한 조합
.엄지 손가락 규칙은 입니다. 문법은 입니다. 주문 번호입니다. 사람이 여전히이 질문을보고하면
는 현재 허용 대답은 이제 구식이되어
사전의이 순서 보존을, 즉 그들이 지금collections.OrderedDict
들에 사용되는 것과 똑같이 행동입니다 파이썬 3.6 이후
. 불행하게도, 여전히 사전의 keys()
/values()
에 인덱스에는 전용 방법이 없기 때문에 사전에 최초의 키/값 (이 키가로 볼 인스턴스화 방지 대안으로
first_key = list(colors.keys())[0]
first_val = list(colors.values())[0]
또는으로 수행 할 수 있습니다하기 목록) :
def get_first_key(dictionary):
for key in dictionary.keys():
return key
first_key = get_first_key(colors)
first_val = colors[first_key]
당신이 n
번째 키가 필요한 경우는 다음과 유사
def get_nth_key(dictionary, n=0):
if n < 0:
n += len(dictionary)
for i, key in enumerate(dictionary.keys()):
if i == n:
return key
raise IndexError("dictionary index out of range")
"첫 번째"무엇을 의미합니까? 사전에는 순서가 없습니다. –