Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5216
| From | Manfred Gil <manfred-gil@t-online.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Ein Problem mit Dictionarie, oder das Schlüssel werte problem |
| Date | 2018-08-28 12:52 +0200 |
| Organization | diese und das |
| Message-ID | <pm39hu$1sc$1@tota-refugium.de> (permalink) |
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."
Back to de.comp.lang.python | Previous | Next — Next in thread | Find similar
Ein Problem mit Dictionarie, oder das Schlüssel werte problem Manfred Gil <manfred-gil@t-online.de> - 2018-08-28 12:52 +0200
Re: Ein Problem mit Dictionarie, oder das Schlüssel werte problem Manfred Gil <manfred-gil@t-online.de> - 2018-08-28 16:46 +0200
Re: [Python-de] Ein Problem mit Dictionarie, oder das Schlüssel werte problem Achim Domma <domma@procoders.net> - 2018-08-28 17:02 +0200
Re: Ein Problem mit Dictionarie, oder das Schlüssel werte problem Manfred Gil <manfred-gil@t-online.de> - 2018-08-28 17:24 +0200
csiph-web