1
votes

Comment puis-je ajouter des numéros de tête à une liste vide et la remplir avec des entrées

voici donc mon code

1.first idea 
2.second idea 
3.third idea 
...
N. N idea.

Lorsque je l'exécute, il affiche une liste, par exemple:

[first idea , second idea , third idea, ...]

Que puis-je faites-le lorsque je lance le programme, il affichera:

list_of_idea = []

while True:
    ask = input("What is your new idea ? :")
    list_of_idea.append(ask)
    print(list_of_idea)

Et si je redémarre le programme, les idées resteront toujours dans la liste


10 commentaires

Vous pouvez le faire en imprimant la liste dans une boucle for et en ajoutant l'index / compteur avant la valeur (c'est-à-dire juste pour imprimer).


qu'entendez-vous par ajouter l'index / compteur avant la valeur?


Gardez un compteur et incrémentez-le à chaque fois, puis utilisez-le dans la fonction d'impression


@AnkurChrungoo OP ne se soucie pas de l'impression des valeurs. Lisez la dernière ligne mentionnée par OP si je redémarre le programme, les idées resteront toujours dans la liste .


@Anwen voulez-vous stocker des idées dans list_of_ideas chaque fois que vous exécutez votre programme tout en conservant les valeurs des exécutions précédentes?


@ Ch3steR oui pour que le stockage de la liste dans un fichier puisse se faire. (Réponse de Filip ci-dessous)


je veux les stocker dans la liste. même si je redémarre le programme et que je veux qu'ils soient comptés


@Anwen, vous pouvez utiliser pickle pour enregistrer la liste


cornichon ? comment puis-je économiser avec un cornichon?


Je ne trouve pas le répertoire du cornichon, celui que j'ai créé. comment puis-je l'enregistrer?


5 Réponses :


1
votes

Les idées ne peuvent pas rester dans la liste car une liste est créée pendant le Runtime. Si vous voulez écrire les idées quelque part, le moyen le plus simple est probablement de l'écrire dans un fichier * .txt .

with open("idea_list.txt", "r") as file:
  line = file.readline()
  while line:
      count = int(line[0])
      line = file.readline()
file.close()

with open("idea_list.txt", "a") as file:
    list_of_ideas = []
    while True:
        count += 1
        ask = input("What is your new idea?\n")
        list_of_ideas.append(ask)
        print(f"{count}) {ask}")
        file.write(f"{count}) {ask}\n")

Après l'avoir exécuté une fois le fichier idea_list.txt doit être créé dans le même répertoire que le script.

Une meilleure façon de les organiser serait de voir quelle idée vous étiez en dernier et de commencer à compter à partir de là peut être fait en faisant ceci:

with open("idea_list.txt", "a") as file:
    list_of_ideas = []
    count = 0
    while True:
        count += 1
        ask = input("What is your new idea?\n")
        list_of_ideas.append(ask)
        print(f"{count}) {ask}")
        file.write(f"{count}) {ask}\n")


2 commentaires

Oui, mais le fichier doit être créé en premier. Lorsque vous exécutez le programme une fois, vous devez le lire et voir quelle idée vous êtes depuis la dernière fois que vous exécutez votre programme.


Je pense que c'est mieux maintenant :)



0
votes

vous pouvez utiliser la longueur de votre liste pour déterminer l'index actuel:

['1.first idea', '2.second idea' ...]

sortie:

list_of_idea = []

while True:
    ask = input("What is your new idea ? :")
    list_of_idea.append(f'{len(list_of_idea) + 1}.{ask}')
    print(list_of_idea)

si vous souhaitez persister la liste même si vous fermez le programme que vous devez utiliser un fichier pour enregistrer la liste ou une base de données.


0 commentaires

0
votes

vous pouvez enregistrer la list_of_idea au format pickle lorsque vous souhaitez la sauvegarder. Après cela, vous pouvez charger le pickle qui contient la liste des idées

import pickle
list_of_idea  = []

while True:
      ask = input("What is your new idea ? :")
      count = len(list_of_idea)
      list_of_idea.append( str(count+1) + '. ' +  ask)
      action = input("enter yes or no, for saving list")
      if action == 'yes':
         with open('idea.pkl', 'wb') as f:
              pickle.dump(list_of_idea, f)
         break
     else:
         pass
     print(list_of_idea)


#op
['1. how', '2. are', '3. you']


0 commentaires

0
votes

Je suggère d'écrire une méthode distincte pour imprimer votre liste d'idées dans un format choisi. Quelque chose comme le code ci-dessous devrait fonctionner pour vous.

def print_ideas(ideas):
   for index, idea in enumerate(list_of_ideas):
      print("{}. {}".format(index+1, idea))

list_of_idea = []
while True:
    ask = input("What is your new idea ? :")
    list_of_idea.append(ask)
    print_ideas(list_of_idea)

La solution complète devrait ressembler à ceci:

def print_ideas(ideas):
   for index, idea in enumerate(list_of_ideas):
      print("{}. {}".format(index+1, idea))
list_of_ideas = ['First idea', 'second idea', 'Third idea']
print_ideas(list_of_ideas)


0 commentaires

0
votes

Ce cas imprimera chaque "1. idée". Après avoir demandé.

list_of_idea = []

while True:
    ask = input("What is your new idea ? :")
    list_of_idea.append(ask)
    print("{}.{}".format(len(list_of_idea), ask))

Quelle est votre nouvelle idée? : asda

1.asda

Quelle est votre nouvelle idée? : asdadasd

2.asdadasd

Les variables ne seront pas enregistrées après une exécution, même si vous ne les enregistrez pas dans un fichier.


0 commentaires