1
votes

Comment utiliser For Loop pour ajouter un entier en tant que chaîne dans la liste?

J'ai créé la liste ci-dessous:

  Store_Rank [0] = 1. Costco

  Store_Rank[2] =  2. Publix

On me demande de créer une autre liste (Store_Rank) pour définir leur classement en ajoutant des entiers devant. Cependant, les entiers doivent être dans un format de liste.

Je suppose que l'interpolation f doit être utilisée?

La liste "Store_Rank" doit afficher ce qui suit:

XXX

Remarque >>> Le résultat attendu est d'avoir

1. Costco, 2. Publix, 3. Kroger, 4. Target

etc.

S'il vous plaît aider! p >


3 commentaires

Vous manquez un tas de guillemets dans votre code? [Costco, Publix, ...] est une liste construite à partir de noms de variables, mais voulez-vous dire en fait ["Costco", "Publix", ...] ?


Bonne prise. J'ajouterai les guillemets


@ Kadodo14, je viens d'ajouter une réponse à votre question, j'espère que cela vous aidera.


3 Réponses :


2
votes

Utilisez le code:

Stores = [Costco, Publix, Kroger, Target]
Store_rank = []
for i in range(0, len(Stores)):
    Store_rank.append(str(i+1) + ". " + Stores[i])


4 commentaires

Il est généralement préférable d'utiliser enumerate plutôt que de parcourir les index. En outre, vous pouvez utiliser des chaînes de format plutôt que la concaténation, bien que les deux méthodes conviennent.


Merci beaucoup Sean! Je suis coincé là-dessus depuis un moment.


Question sur Store_rank = []. Le définissez-vous comme une liste vide? Une raison pourquoi? Merci d'avance


Que si vous réexécutez le bloc de code, par exemple dans les cahiers Jupyter, la liste est à nouveau vidée et tout n'est pas ajouté une autre fois



1
votes

Code court utilisant enumerate

Store_Rank = [str(idx) + ". " + store for idx, store in enumerate(Stores, start=1)]


0 commentaires

1
votes

Si vous utilisez Python 3.6+, vous pouvez utiliser une compréhension de liste et des chaînes F comme suit:

>>> Stores = ['Costco','Publix', 'Kroger', 'Target']
>>> [f'{i}. {store}' for i, store in enumerate(Stores, start=1)]
['1. Costco', '2. Publix', '3. Kroger', '4. Target']


0 commentaires