파이썬에서 사전 키에 여러 값을 추가하는 방법은 무엇입니까? [닫은]


84

파이썬 사전의 특정 키에 여러 값을 추가하고 싶습니다. 어떻게 할 수 있습니까?

a = {}
a["abc"] = 1
a["abc"] = 2

그러면 a [ "abc"] 값이 1에서 2로 바뀝니다.

대신 내가 원하는 것은 a [ "abc"]가 여러 값 (1과 2 모두)을 갖는 것입니다.

답변:


161

값을 목록으로 만듭니다. 예 :

a["abc"] = [1, 2, "bob"]

최신 정보:

키에 값을 추가하고 목록이없는 경우 목록을 만드는 방법에는 두 가지가 있습니다. 이러한 방법 중 하나를 작은 단계로 보여 드리겠습니다.

key = "somekey"
a.setdefault(key, [])
a[key].append(1)

결과 :

>>> a
{'somekey': [1]}

다음으로 시도해보십시오.

key = "somekey"
a.setdefault(key, [])
a[key].append(2)

결과 :

>>> a
{'somekey': [1, 2]}

의 마술은 해당 키가 정의되지 않은 경우 해당 키 setdefault의 값을 초기화하고 그렇지 않으면 아무 작업도 수행하지 않는다는 것입니다. 이제 키 를 반환 한다는 점에 주목 하여 이들을 한 줄로 결합 할 수 있습니다.setdefault

a.setdefault("somekey",[]).append("bob")

결과 :

>>> a
{'somekey': [1, 2, 'bob']}

dict방법, 특히 방법을 살펴보고 이에 get()익숙해 지도록 몇 가지 실험을 수행해야합니다.


8
게시 된 시간에 봐 - 우리 모두 :) 두 번째로 아래로, 정확히 같은 시간에 같은 대답을했다
MattDMo

하나씩 추가하고 싶습니다.
PythonEnthusiast

1
함수에 키와 값을 제공하는 것처럼 요. 키가 이미있는 경우 키에 새 값을 추가해야합니다.
PythonEnthusiast

1
type (a [ "abc"]) == 목록인지 확인할 수 있습니다. 그렇지 않은 경우 해당 항목을 해당 목록의 첫 번째 요소로 사용하여 새 목록을 만듭니다.
octref

2
감사합니다, 정말 좋아했습니다 a.setdefault ( "somekey", []). append ( "bob")
ARH

22

어때

a["abc"] = [1, 2]

결과는 다음과 같습니다.

>>> a
{'abc': [1, 2]}

그게 당신이 찾고 있던 것입니까?


하나씩 추가하고 싶습니다. like a [ "abc"] = 1 및 a [ "abc"] = "def"
PythonEnthusiast

@ user1162512 A [ "ABC"( "DEF") APPEND.
octref

목록을 사용하지 않으려면 어떻게해야합니까? 그래도 값을 추가 할 수 있습니까? 예를 들어 : 나는 dict a [ "abc": 1]가 있습니다. 이제 "abc"키에 "def"를 추가하고 싶습니다. 어떻게 할 수 있습니까?
PythonEnthusiast

2
@ user1162512 특정 키에 대해 둘 이상의 값을 갖고 싶다면 여러 값 (다른 dict, 튜플 등)에 대해 목록이나 다른 컨테이너를 사용해야합니다. {"abc": 1, 2}딕셔너리는 키 : 값 쌍이며 키당 하나의 값만 있으므로 수행 할 수 없습니다 .
MattDMo

2
우리는 : 파이썬 쌍둥이
대통령 제임스 K. 포크
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.