tassilomoedl
Anmeldungsdatum: 27. Juli 2022
Beiträge: 77
|
Hallo Leute, wie kann ich in Python aus einer Liste, z.B:
{'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}} einen bestimmten Datensatz, z.B:
'Alter': 42
extrahieren?
Gruss, tassilomoedl
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11249
Wohnort: München
|
tassilomoedl schrieb: wie kann ich in Python aus einer Liste, z.B:
{'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}}
Das ist keine Liste, das sieht nach einem verschachtelten Dictionary aus - dementsprechend kann man da alle nutzen, was letztendlich __getitem__ aufruft - z.B.:
| >>> data = {'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}}
>>> data['Inhaber']['Alter']
42
>>> data.get('Inhaber').get('Alter')
42
>>> data.__getitem__('Inhaber').__getitem__('Alter')
42
|
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13175
|
tassilomoedl schrieb:
wie kann ich in Python aus einer Liste, z.B:
Das ist doch gar keine Liste, sondern ein Dictionary, das u.a. auch zwei Listen enthält.
{'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}} einen bestimmten Datensatz, z.B:
'Alter': 42
extrahieren?
Das ist kein Datensatz sondern ein einzelnes Datum. Es hängt halt davon ab, was die möglichen Inhalte des Dictionaries und die Kriterien sind. Du kannst natürlich über den Schlüssel "Inhaber" und "Alter" gehen und hast dann Deine 42. 1
2
3
4
5
6
7
8
9
10
11
12
13 | dic = { 'Deckung': 2000000.0,
'Herausgeber': 'Xema',
'Inhaber': { 'Alter': 42,
'Hobbys': ['Reiten', 'Golfen', 'Lesen'],
'Kinder': [],
'Name': 'Mustermann',
'Partner': None,
'Vorname': 'Max',
'maennlich': True},
'Nummer': '1234-5678-9012-3456',
'Waehrung': 'EURO'}
print(dic['Inhaber']['Alter'])
|
|
tassilomoedl
(Themenstarter)
Anmeldungsdatum: 27. Juli 2022
Beiträge: 77
|
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, wenn dir das mit Dict vs. List noch nicht klar ist solltest du dringend nochmal das Tutorial auf docs.python.org durcharbeiten. Das sind absolute Grundlage, die du immer und immer wieder brauchst. Ohne Verständnis von Dicts und Listen wirst du Python nicht wirklich nutzen können. Gruß, noisefloor
|
tassilomoedl
(Themenstarter)
Anmeldungsdatum: 27. Juli 2022
Beiträge: 77
|
noisefloor schrieb: Hallo, wenn dir das mit Dict vs. List noch nicht klar ist solltest du dringend nochmal das Tutorial auf docs.python.org durcharbeiten. Das sind absolute Grundlage, die du immer und immer wieder brauchst. Ohne Verständnis von Dicts und Listen wirst du Python nicht wirklich nutzen können. Gruß, noisefloor
OK! Ich lerne gerade Python, deswegen habe ich das noch nicht gewusst.
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2133
Wohnort: Gelsenkirchen
|
seahawk1986 schrieb: tassilomoedl schrieb: wie kann ich in Python aus einer Liste, z.B:
{'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}}
Das ist keine Liste, das sieht nach einem verschachtelten Dictionary aus - dementsprechend kann man da alle nutzen, was letztendlich __getitem__ aufruft - z.B.:
| >>> data = {'Herausgeber': 'Xema', 'Nummer': '1234-5678-9012-3456', 'Deckung': 2000000.0, 'Waehrung': 'EURO', 'Inhaber': {'Name': 'Mustermann', 'Vorname': 'Max', 'maennlich': True, 'Hobbys': ['Reiten', 'Golfen', 'Lesen'], 'Alter': 42, 'Kinder': [], 'Partner': None}}
>>> data['Inhaber']['Alter']
42
>>> data.get('Inhaber').get('Alter')
42
>>> data.__getitem__('Inhaber').__getitem__('Alter')
42
|
Nicht alles was man kann, sollte man auch tun. Die eckigen Klammern sind bekanntlich der gängige Weg. Ein doppeltes get() ohne Prüfen der Rückgabe macht IMHO wenig Sinn. Warum sollte man sich als Anfänger mit den Problemen eines möglichen None (und entsprechend verwirrender Fehlermeldung) herum schlagen? Und die Dunder-Methoden ruft man nur innerhalb von geerbten Klassen auf, wenn man diese überschreiben möchte. Mir ist übrigens bewusst, dass DU das alles durchaus weißt. Aber komplett unreflektiert einen blutigen Anfänger vor diese Entscheidung zu stellen, finde ich in einem Forum ehrlich gesagt nicht so angebracht...
|