Mam ten słownik wypełniony kluczami (każdy klucz jest krotką) i wartością Brak dla każdego klucza. Chcę dodać wartości (pojedynczo) w pętli for do kluczy, bez nadpisywania wartości
Ten kod zawiera komunikat o błędzie „AttributeError: Obiekt„ NoneType ”nie ma atrybutu„ append ””
dictionary1={}
dictionary1.update( {(0,0) : None} )
listOfTuples=[(0,0),(1,0),(9,0)]
for x in range(3):
dictionary1[(0,0)].append(listOfTuples(x))
Wynik, który chcę, to słownik1, który ma wyglądać:
{ (0,0) : [(0,0),(1,0),(9,0)] }
Ale chcę, aby był on wypełniany w pętli for po jednej krotce naraz
2 odpowiedzi
Jak wspomniano w C. Lewisa, musisz zamienić None
na pustą listę w aktualizacji słownika.
Ponadto listOfTuples
jest listą, dlatego musisz uzyskać dostęp do jej elementu za pomocą składni listOfTuples[index]
zamiast listOfTuples(index)
.
Poniższy kod osiąga oczekiwane wyniki:
dictionary1={}
dictionary1.update( {(0,0) : []} )
print(dictionary1.keys())
listOfTuples=[(0,0),(1,0),(9,0)]
for x in range(3):
dictionary1[(0,0)].append(listOfTuples[x])
print(dictionary1) # {(0, 0): [(0, 0), (1, 0), (9, 0)]}
Aby to działało tak, jak chcesz, musisz zastąpić None
pustą Listą []
, ponieważ teraz próbujesz dodać (0,0) do Brak, stąd błąd.
dictionary1={}
dictionary1.update( {(0,0) : []} )
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.