Code:
from typing import Any, Callable

ronsard_verses = [
    "Mignonne, allons voir si la rose",
    "Qui ce matin avait déclose",
    "Sa robe de pourpre au Soleil,",
    "A point perdu cette vêprée",
    "Les plis de sa robe pourprée,",
    "Et son teint au vôtre pareil.",

    "Las! voyez comme en peu d'espace,",
    "Mignonne, elle a dessus la place",
    "Las! las ses beautés laissé choir!",
    "Ô vraiment marâtre Nature,",
    "Puis qu'une telle fleur ne dure",
    "Que du matin jusques au soir!",
   
    "Donc, si vous me croyez, mignonne,",
    "Tandis que votre âge fleuronne",
    "En sa plus verte nouveauté,",
    "Cueillez, cueillez votre jeunesse:",
    "Comme à ceste fleur la vieillesse",
    "Fera ternir votre beauté.",
]

def filter(items: list[str], predicate: Callable[[str], bool]) -> list[str]:
    result: list[str] = []
    for item in items:
        if predicate(item):
            result.append(item)
    return result

def filter_alt(items: list[str], predicate: Callable[[str], bool]) -> list[str]:
    return [item for item in items if predicate(item)]


def contains_comma(verse: str) -> bool:
    return ',' in verse

print(filter(ronsard_verses, contains_comma))

print(filter(ronsard_verses, lambda v: ',' in v))
Modifié le: dimanche, 28 avril 2024, 22:34