Преобразование пользовательского ввода в имя списка

Вот что я имею до сих пор:

TotalLists=int(input("How many Lists are you making?")) TotalListsBackup=TotalLists Lists=[] while TotalLists>0: ListName=input("What would you like to call List Number "+str(TotalLists)) Lists.append(ListName) TotalLists=TotalLists-1 TotalLists=TotalListsBackup-1 while TotalLists>=0: Lists[TotalLists] #I would like to create actual lists out of the list names at this step but I dont know how... TotalLists=TotalLists-1 TotalLists=TotalListsBackup-1 print("Here are your Lists: ") while TotalLists>=0: print(Lists[TotalLists]) TotalLists=TotalLists-1 

Я хочу иметь возможность:

  • создать список из имен списка
  • Код, чтобы иметь возможность создавать столько списков, сколько пользователь хочет без кепки

Например, я хочу ввести: Grocery, Код создаст список Called Grocery


Решения, о которых я подумал:

  • Массивы? (Я никогда не использовал их, я очень новичок в программировании на Python, и я не слишком много знаю)

  • Списки списков? (Не знаю, как это сделать. Посмотрел, но не получил прямого ответа)

  • Использование переменных, Создание списка с именем типа:

     List1[] 

и имеют переменную, называемую:

  List1Name=input("What would you like to call list 1?") 

Однако я не знаю, как создать бесконечное количество списков, используя этот способ.

Если у вас есть какие-либо вопросы, пожалуйста, спросите, потому что я знаю, что я не очень хорошо объясняю.

2 Solutions collect form web for “Преобразование пользовательского ввода в имя списка”

Интересно, что вы отметили вопрос «словарь», но не упомянули об этом в своем сообщении. Кто-нибудь сказал вам использовать словарь? Это именно то, что вы должны делать, как это (предположим, что TotalLists уже определен):

 d = {} for _ in range(TotalLists): # The same loop you have now ListName = input("whatever...") d[ListName] = [] 

В конце этого слова у вас есть словарь d, содержащий ключи, которые являются именами, введенными пользователем, и значениями, которые являются пустыми списками. Количество словарных статей – TotalLists. Я игнорирую возможность того, что пользователь будет вводить одно и то же имя дважды.

Вы решаете проблему XY. Нет необходимости запрашивать количество list заранее. Я бы рекомендовал использовать словарь:

 >>> lists = {} >>> while 1: ... newlist = input("Name of new list (leave blank to stop)? ") ... if newlist: ... lists[newlist] = [] ... while 1: ... newitem = input("Next item? ") ... if newitem: ... lists[newlist].append(newitem) ... else: ... break ... else: ... break ... Name of new list (leave blank to stop)? groceries Next item? apples Next item? bananas Next item? Name of new list (leave blank to stop)? books Next item? the bible Next item? harry potter Next item? Name of new list (leave blank to stop)? >>> lists {'groceries': ['apples', 'bananas'], 'books': ['the bible', 'harry potter']} 
Python - лучший язык программирования в мире.