J'ai une liste de listes:
data = [['SiteUrl','Url','Title'],['SiteUrl','Url','Title']]
Comment puis-je parcourir la liste et mettre en minuscules tout le contenu en utilisant python?
5 Réponses :
Parcourez chacune des listes internes:
data = [[string.lower() for string in sublist] for sublist in data]
En utilisant une compréhension de liste:
data = [list(map(str.casefold, x)) for x in data]
Ou fonctionnellement:
data = [[x.casefold() for x in sublst] for sublst in data]
De la documentation :
Le pliage du boîtier est similaire à la mise en minuscules mais plus agressif car il est destiné à supprimer toutes les distinctions de casse dans une chaîne.
Vous pouvez mapper ()
toutes les sous-listes de données
vers map ()
qui rendra tous ses éléments inférieurs ( )
.
[['siteurl', 'url', 'title'], ['siteurl', 'url', 'title']]
Sortie
data= [['SiteUrl','Url','Title'],['SiteUrl','Url','Title']] data = list(map(lambda x: list(map(lambda y: y.lower(), x)), data)) print(data)
Pour un nombre arbitraire de niveaux, vous pouvez essayer cette récursion
data= [['SiteUrl','Url','Title'],['SiteUrl','Url','Title']] def recursive_apply(x, f=lambda v: v.lower()): if type(x) is list: return [recursive_apply(el) for el in x] return f(x) recursive_apply(data)
data = [map (str.lower, sublist) pour la sous-liste dans les données]
La profondeur de la liste imbriquée est-elle fixe? Ou pourrait-il y avoir un troisième niveau aussi?
si vous avez une profondeur indéfinie de listes et / ou de contenu mixte, écrivez une méthode récursive qui itère tous les éléments, si la chaîne appelle la valeur inférieure et si la méthode d'appel de la liste sur cette liste