将用户输入转换为列表名称

时间:2015-05-20 00:47:04

标签: python list dictionary

这是我到目前为止所做的:

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, 代码将创建一个名为Grocery的列表

我想到的解决方案:

  • 阵列? (我从来没有使用它们,我是Python编程的新手,我不太了解)

  • 列表清单? (不知道该怎么做。看着它,但没有得到直接回答)

  • 使用变量,创建名称如下的列表:

    List1[]
    

并且有变量叫:

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

我不知道如何使用这种方式创建无限数量的列表。

如果您有任何疑问,请询问,因为我知道我不擅长解释。

2 个答案:

答案 0 :(得分:2)

有趣的是,您已经标记了“字典”这个问题,但在帖子中没有提到。有人告诉你使用字典吗?这正是你应该做的,就像这样(假设已经定义了TotalLists):

d = {}

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

在这结尾处,您有一个字典d,其中包含用户输入的名称和空列表的值。字典条目的数量是TotalLists。我忽略了用户两次输入相同名称的可能性。

答案 1 :(得分:0)

您正在解决XY问题。没有必要提前询问ord的数量。我建议使用字典:

list