| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Keskustelut - Python / Ruby / Perl - python haku vain osittaisen stringin perusteella.Pewu 18:06 16.4.09 Moi, eli miten voisin matchata stringejä esim wildcardien avulla. Ongelmani on siis tämä minulla on lista stringejä ja haluaisin palauttaa tietyn stringin indexin mutta en voi matchata koko stringiin. lista = ["banaani", "omena", kurkku"] haluasin siis palauttaa, vaikka omenan indexin antamalla vain stringin alun tyyliin lista.index("ome*") onko tähän mitään keinoa? luin jostain RE moduulista jolla voi käyttää wilcardeja. mutta en hiffannut miten sitä voisi tähän tapaukseen käyttää. jos hommaan oon muukin rartkaisu kuin wilcardit kertokaa ihmeessä. ja tarvin nimenomaan indexin esim. True false ei käy. kiitos avusta etukäteen. thelineva 18:53 16.4.09 Python >>> import re >>> lista = ['banaani', 'omena', 'kurkku'] >>> pattern = re.compile('^ome') >>> [index for index, item in enumerate(lista) if pattern.search(item)] [1] Jos haettava merkkijono on aina alussa, säännöllistä lauseketta ei tarvita: Python >>> lista = ['banaani', 'omena', 'kurkku'] >>> [index for index, item in enumerate(lista) if item.startswith('ome')] [1] Ja vielä ilman list comprehensionia: Python >>> lista = ['banaani', 'omena', 'kurkku'] >>> filter(lambda (index, item): item.startswith('ome'), enumerate(lista)) [(1, 'omena')] >>> map(lambda (index, item): index, filter(lambda (index, item): item.startswith('ome'), enumerate(lista))) [1] editoitu: 18:55 16.4.09 trilog 18:53 16.4.09 Edit. ks. thelinevan vastaus :) |
![]() Haku
|