Chcę dodać wiele wartości do określonego klucza w słowniku Pythona. Jak mogę to zrobić?
a = {}
a["abc"] = 1
a["abc"] = 2
Spowoduje to zastąpienie wartości ["abc"] z 1 na 2.
Zamiast tego chcę, aby ["abc"] miało wiele wartości (1 i 2).
źródło
Chcę dodać wiele wartości do określonego klucza w słowniku Pythona. Jak mogę to zrobić?
a = {}
a["abc"] = 1
a["abc"] = 2
Spowoduje to zastąpienie wartości ["abc"] z 1 na 2.
Zamiast tego chcę, aby ["abc"] miało wiele wartości (1 i 2).
Ustaw wartość jako listę, np
a["abc"] = [1, 2, "bob"]
AKTUALIZACJA:
Istnieje kilka sposobów dodawania wartości do klucza i tworzenia listy, jeśli jeszcze takiej nie ma. Jedną z takich metod pokażę małymi krokami.
key = "somekey"
a.setdefault(key, [])
a[key].append(1)
Wyniki:
>>> a
{'somekey': [1]}
Następnie spróbuj:
key = "somekey"
a.setdefault(key, [])
a[key].append(2)
Wyniki:
>>> a
{'somekey': [1, 2]}
Magia setdefault
polega na tym, że inicjalizuje wartość dla tego klucza, jeśli ten klucz nie jest zdefiniowany, w przeciwnym razie nic nie robi. Teraz zauważając, że setdefault
zwraca klucz, możesz połączyć je w jedną linię:
a.setdefault("somekey",[]).append("bob")
Wyniki:
>>> a
{'somekey': [1, 2, 'bob']}
Powinieneś przyjrzeć się dict
metodom, w szczególności get()
metodzie, i przeprowadzić kilka eksperymentów, aby się z tym pogodzić.
Co powiesz na
a["abc"] = [1, 2]
Spowoduje to:
>>> a {'abc': [1, 2]}
Czy tego szukałeś?
źródło
{"abc": 1, 2}
ponieważ dict to para klucz: wartość, z tylko jedną wartością na klucz.