Hallo Liste, ich will zur Laufzeit meines Programms ein dict erstellen mit einem Schlüssel und zwei werten. Der eine wert soll je nach anforderung erhöht werden, also als Counter fungieren. Der zweite wert soll erstmal nicht geändert werden wenn er erstellt wurde. Ich würde nun den Counter mit der get() Methode erhöhen und da liegt mein Problem begraben. Als kurzes und einfaches beispiel: #!/usr/bin/env python3 # -*- coding: utf-8 -*- # < code > dict = {'key' : [2, 'hallo']} print('was enthält das dict ?') print(dict) print('\n') print('Gebe den ersten wert für key aus [0]') print(dict['key'][0]) print('\n') print('Gebe den zweiten wert für key aus [1]') print(dict['key'][1]) print('\n') print('Erhöhe den ersten wert für key[0] um 1') dict['key'][0] += 1 print('Gebe den ersten wert für key[0] nach der erhöhung aus') print(dict['key'][0]) print('\n') print('Erhöhe den wert nochmals um 1 mit get') # hier beginnt das Problem mit get #dict['key'][0] = dict.get('key'[0], dict['key'][0]) + 1 # (1) dict['key'][0] = dict.get('key'[0]) + 1 # (2) print(dict['key'][0]) print('\n') print('und so sieht das dict jetzt aus') print(dict) #< code end > (1) geht weil get() den default Bereich benutzt. Diese sollte aber so nicht sein. (2) führt zu einem TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' ist diese Art mit get() umzugehen falsch oder nicht möglich wenn zwei werte für einen key da sind? Die alternative die ich fand ist die Methode has_key(), diese liefert mir jedoch den fehler das dict has_key() nicht kennt. Gehörte wohl zu Python 2.7 Gruß Manfred -- Letzte Worte von U. Barschel: "Ich gebe mein Ehrenwort."