0
votes

Comment mettre en majuscule chaque élément d'une liste dans un dictionnaire en Python?

Je veux mettre en majuscule chaque élément d'une liste dans un dictionnaire.

dict['food'].title()

Je veux que chaque élément de la liste «nourriture» soit mis en majuscule.

J'ai essayé de faire ça

dict = {'name': 'Kevin', 'age':16, 'food':['chicken', 'pizza', 'burger'], 'shoes':'Adidas'}

Mais ça ne marche pas. Veuillez aider.


0 commentaires

4 Réponses :


0
votes

Vous pouvez utiliser l'attribution d'éléments pour modifier la liste sur place.

Par exemple:

dct = {'name': 'Kevin', 'age':16, 'food':['chicken', 'pizza', 'burger'], 'shoes':'Adidas'}

lst = dct['food']

for i, val in enumerate(lst):
    lst[i] = val.title()

print(dct)

L'alternative consiste à utiliser une expression pour générer un nouvel objet de liste avec les valeurs correctes. Cela est correctement couvert par une autre réponse et je ne la répéterai pas ici.

De plus, n'appelez pas votre dictionnaire dict . Il n’est pas bon de remplacer un élément intégré.


0 commentaires

2
votes

title () ne fonctionne que sur la chaîne. Vous accédez à la liste via dict ['food'] . Vous devez parcourir cette liste et appeler cette fonction sur chacun d'eux, puis modifier la valeur de dict ['food'] . Heureusement, cela peut être fait en une seule ligne avec une compréhension de liste.

dict = {'name': 'Kevin', 'age':16, 'food':['chicken', 'pizza', 'burger'], 'shoes':'Adidas'}
dict['food'] = [food.title() for food in dict['food']]


0 commentaires

1
votes

Utilisez simplement capitalize sur chaque élément de la liste comme ceci:

dict["food"] = [f.capitalize() for f in dict["food"]]


0 commentaires

0
votes

Vous pouvez utiliser la compréhension de liste et de dictionnaire, combinée à la syntaxe d'évaluation paresseuse if then else:

dict = {'name': 'Kevin', 'age':16, 'food':['chicken', 'pizza', 'burger'], 'shoes':'Adidas'}

result = {k:([i.title() for i in v] if isinstance(v,list) else v) for k,v in dict.items()}

print(result)


0 commentaires