Path: csiph.com!news.swapon.de!weretis.net!feeder4.news.weretis.net!feeder5.news.weretis.net!news.tota-refugium.de!.POSTED!not-for-mail From: Manfred Gil Newsgroups: de.comp.lang.python Subject: Ein Problem mit Dictionarie, oder das =?UTF-8?B?U2NobMO8c3NlbA==?= werte problem Date: Tue, 28 Aug 2018 12:52:46 +0200 Organization: diese und das Lines: 70 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: tota-refugium.de 1535453566 1932 127.0.0.43 (28 Aug 2018 10:52:46 GMT) X-Complaints-To: abuse@news.tota-refugium.de NNTP-Posting-Date: Tue, 28 Aug 2018 10:52:46 +0000 (UTC) Cancel-Lock: sha1:vT3yvUg4NjWe9E2rMPQ3xPP0zuc= X-Newsreader: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) X-Operating-System: Debian-stretch X-User-ID: eJwNyskBwCAIBMCWlGOFcmSF/ktI5j2u2OAxOMzHh9W6sUUQi0uKCeml6Kb8ZeoqO8vOi4lJi3LeR8EDU658VIEV8Q== Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAElBMVEUSEQ9eW1Dkxz/6+fjQ w52JeEi7Imd/AAAACXBIWXMAAAsSAAALEgHS3X78AAAATnRFWHRSYXcgcHJvZmlsZSB0eXBlIGV4 aWYACmV4aWYKICAgICAgMjAKNDU3ODY5NjYwMDAwNGQ0ZDAwMmEwMDAwMDAwODAwMDAwMDAwMDAw MAqJuBZbAAAACXZwQWcAAAAwAAAAMADO7oxXAAABk0lEQVQ4y32TS3KDMAxAxQB7uyEHiGvvoSh7 sMSeJnD/q9Q/DBmYamNZz/oioM8ySkn7DbL2bHiUV+CODTflGXTSC5xBWwRAJzBAkPIEhLMWANUZ 3ETRt1CcAbcVdhdgmMZq5CsPsS6iufJ4EY7rFVg0WwNwblA5+Q/QCbADtLeewUxKcT/n1g8x0UVp c5Lt7Op4ANw+wfwOB+YxJoA5wlZXMnSwT788gmEbhUtSHMFWPuEnwK0WD6IOKUDISIckkFYk+KWl qHYgUvGIOKYkEeQJEQ5H0EETrERIbWoxgTLmQCLvsQNRhpqQELvmF3Kop17Ce+yJf6WsM7D8CMNF 7pcZoN5C4cLWlUXsiHY5bAKsmXn2c2BCPYkGI0BtHTGFrxX5RUz8jkBZ1tqKt8vOrC1bNgk4M6v5 5jyYvzQrtjqCICN7+8hWaaXNAahvwn66R92QA88ENCPPCSze4ycBI6WQdVBXOoYy/ndeN3tocH35 68MDH8os26zQGHd/+XcYE+xbMpk1LuC0mo9NdANOX10n5Q8J6syYNMm6EgAAABp6VFh0anBlZzpj b2xvcnNwYWNlAAB42jMCAAAzADOJOCM1AAAAJnpUWHRqcGVnOnNhbXBsaW5nLWZhY3RvcgAAeNoz qjDSMawwBGEAEYMC6T2XL08AAAAASUVORK5CYII= Xref: csiph.com de.comp.lang.python:5216 Hallo Liste, ich will zur Laufzeit meines Programms ein dict erstellen mit einem=20 Schl=C3=BCssel und zwei werten. Der eine wert soll je nach anforderung erh=C3=B6ht werden, also als Counter fungieren. Der zweite wert soll erstmal nicht ge=C3=A4ndert werden wenn er erstellt wurde. Ich w=C3=BCrde nun den Counter mit der get() Methode erh=C3=B6hen und da li= egt mein Problem begraben.=20 Als kurzes und einfaches beispiel:=20 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # < code > dict =3D {'key' : [2, 'hallo']} print('was enth=C3=A4lt das dict ?') print(dict) print('\n') print('Gebe den ersten wert f=C3=BCr key aus [0]') print(dict['key'][0]) print('\n') print('Gebe den zweiten wert f=C3=BCr key aus [1]') print(dict['key'][1]) print('\n') print('Erh=C3=B6he den ersten wert f=C3=BCr key[0] um 1') dict['key'][0] +=3D 1 print('Gebe den ersten wert f=C3=BCr key[0] nach der erh=C3=B6hung aus') print(dict['key'][0]) print('\n') print('Erh=C3=B6he den wert nochmals um 1 mit get') # hier beginnt das Problem mit get #dict['key'][0] =3D dict.get('key'[0], dict['key'][0]) + 1 # (1) dict['key'][0] =3D 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=C3=BChrt zu einem TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' ist diese Art mit get() umzugehen falsch oder nicht m=C3=B6glich wenn zwei werte f=C3=BCr 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=C3=B6rte wohl zu Python 2.7 Gru=C3=9F Manfred --=20 Letzte Worte von U. Barschel: "Ich gebe mein Ehrenwort."