J'ai deux ensembles (bien que je peux faire des listes, ou autre):comparaison insensible à la casse des jeux en Python
a = frozenset(('Today','I','am','fine'))
b = frozenset(('hello','how','are','you','today'))
Je veux:
frozenset(['Today'])
ou tout au moins:
frozenset(['today'])
La deuxième option est faisable si je mets tout en minuscule je présume, mais je cherche une manière plus élégante. Est-il possible de faire
a.intersection(b)
d'une manière insensible à la casse?
Les raccourcis dans Django sont également très bien puisque j'utilise ce framework.
Exemple de méthode d'intersection ci-dessous (je ne pouvais pas comprendre comment obtenir cette forme dans un commentaire):
print intersection('Today I am fine tomorrow'.split(),
'Hello How a re you TODAY and today and Today and Tomorrow'.split(),
key=str.lower)
[(['tomorrow'], ['Tomorrow']), (['Today'], ['TODAY', 'today', 'Today'])]
Juste pour noter, je reçois cette erreur en faisant cela sur le texte Unicode: *** TypeError: descripteur 'inférieur' nécessite un objet 'str' mais a reçu un 'unicode' Je cherche une solution maintenant. –
@Adam: Utilisez 'unicode.lower' pour les chaînes unicode. – jfs
J'utiliserais 'd = collections.defaultdict (list)' puis 'd [key (item)]. Append (item)' –