Seite 1 von 1

dict und list problem

Verfasst: Montag 21. Februar 2011, 15:36
von mit
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.

Re: dict und list problem

Verfasst: Montag 21. Februar 2011, 15:53
von Hyperion
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'}

Re: dict und list problem

Verfasst: Montag 21. Februar 2011, 15:55
von numerix
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'}