Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
mit
User
Beiträge: 285 Registriert: Dienstag 16. September 2008, 10:00
Montag 21. Februar 2011, 15:36
Hallo,
Wie koennte man aus der Liste (keys) automatisch den passenden key heraus finden der zu dem anfangs String (value) passt?
Code: Alles auswählen
>>> d = {}
>>> keys = ['Ju', 'E', 'Ag', 'Sk', 'M1', 'M2', 'Bn', 'Sr']
>>> value = "EP1-HaI-EAS406"
>>> d['E'] = 'EP1-HaI-EAS406'
>>> d
{'E': 'EP1-HaI-EAS406'}
Vielen Dank im Voraus.
Hyperion
Moderator
Beiträge: 7478 Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:
Montag 21. Februar 2011, 15:53
So?:
Code: Alles auswählen
In [11]: d[[key for key in keys if value.startswith(key)][0]] = value
In [12]: d
Out[12]: {'E': 'EP1-HaI-EAS406'}
Oder auch so:
Code: Alles auswählen
In [17]: d[filter(lambda k: value.startswith(k), keys)[0]] = value
In [18]: d
Out[18]: {'E': 'EP1-HaI-EAS406'}
Zuletzt geändert von
Hyperion am Montag 21. Februar 2011, 15:56, insgesamt 1-mal geändert.
numerix
User
Beiträge: 2696 Registriert: Montag 11. Juni 2007, 15:09
Montag 21. Februar 2011, 15:55
Was verstehst du unter "passt"? - Ist es das, was du willst:
Code: Alles auswählen
>>> keys = ['Ju', 'E', 'Ag', 'Sk', 'M1', 'M2', 'Bn', 'Sr']
>>> value = "EP1-HaI-EAS406"
>>> d = {}
>>> for key in keys:
... if value.startswith(key):
... d[key] = value
... break
...
>>> d
{'E': 'EP1-HaI-EAS406'}