Python 使用用户输入命名列表

Python 使用用户输入命名列表,python,list,input,Python,List,Input,我想让用户定义代码中要使用的列表的名称,所以我一直在使用输入函数。我希望用户对输入函数的响应成为列表的名称。我尝试了以下方法: a = input("What would you like the name of the list to be? ") a = [] 但是,它将列表命名为“a”,而不是用户响应输入函数的任何字符串。我怎样才能让用户名进入列表?还有什么方法可以做到这一点吗?要实现您的目标,正确的方法是使用列表的dict: >>> lists = {} >&g

我想让用户定义代码中要使用的列表的名称,所以我一直在使用输入函数。我希望用户对输入函数的响应成为列表的名称。我尝试了以下方法:

a = input("What would you like the name of the list to be? ")
a = []

但是,它将列表命名为“a”,而不是用户响应输入函数的任何字符串。我怎样才能让用户名进入列表?还有什么方法可以做到这一点吗?

要实现您的目标,正确的方法是使用列表的
dict

>>> lists = {}
>>> lists['homework'] = [40, 60, 70]
>>> lists['tests'] = [35, 99, 20]
>>> lists
{'tests': [35, 99, 20], 'homework': [40, 60, 70]}
>>> 

当您可以请求输入时,
input
函数(
raw\u input
在Python2.x中)返回一个字符串,您可以将其作为字典的键。

在这里实现所需功能的正确方法是列表的
dict

>>> lists = {}
>>> lists['homework'] = [40, 60, 70]
>>> lists['tests'] = [35, 99, 20]
>>> lists
{'tests': [35, 99, 20], 'homework': [40, 60, 70]}
>>> 

当您可以请求输入时,
input
函数(
raw\u input
在Python 2.x中)返回一个字符串,您可以将其作为字典的键。

您的问题的直接答案是,您可以使用
vars()
访问变量范围:

list_name = input("What would you like the name of the list to be?")
vars()[list_name] = []
然后,如果在提示符处输入“foo”,则会有一个名为foo的变量


一个间接的答案是,正如其他几个用户告诉您的那样,您不想让用户选择您的变量名,而是希望使用列表字典,以便将用户创建的所有列表放在一个地方

在运行时选择变量名的程序是一个永远不会没有bug的程序。例如,如果用户在提示中键入“input”,您将重新定义输入函数,这样当该用户或其他用户尝试创建另一个列表时,您将得到一个错误:

>>> list_name = input("What would you like the name of the list to be?")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>list\u name=input(“您希望列表的名称是什么?”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用

对您的问题的直接回答是,您可以使用
vars()
访问变量范围:

list_name = input("What would you like the name of the list to be?")
vars()[list_name] = []
然后,如果在提示符处输入“foo”,则会有一个名为foo的变量


一个间接的答案是,正如其他几个用户告诉您的那样,您不想让用户选择您的变量名,而是希望使用列表字典,以便将用户创建的所有列表放在一个地方

在运行时选择变量名的程序是一个永远不会没有bug的程序。例如,如果用户在提示中键入“input”,您将重新定义输入函数,这样当该用户或其他用户尝试创建另一个列表时,您将得到一个错误:

>>> list_name = input("What would you like the name of the list to be?")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>list\u name=input(“您希望列表的名称是什么?”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用

我之所以想这样做,是因为我正在编写一个程序,以跟踪学生在多个课程中的成绩,并且我希望学生能够输入课程的不同“部分”(如测试、家庭作业等)。每个部分都应该是一个空列表,学生可以在其中输入分数。但是,为了能够在整个课程中跟踪不同的课程段,并适应不同课程有不同的课程段和不同数量的课程段这一事实,用户输入似乎是给我的列表命名的最佳方式。这与你之前的问题有什么不同?可能重复和/或不需要问两到三次相同的问题……这让人们感到困扰,最终他们会忽略you@Phil:在这种情况下,请编辑旧问题以吸引新答案。请看:我之所以想这样做,是因为我正在做一个项目,以跟踪学生在多个课程中的成绩,我希望学生能够进入课程的不同“部分”(如测试、家庭作业等)。每个部分都应该是一个空列表,学生可以在其中输入分数。但是,为了能够在整个课程中跟踪不同的课程段,并适应不同课程有不同的课程段和不同数量的课程段这一事实,用户输入似乎是给我的列表命名的最佳方式。这与你之前的问题有什么不同?可能重复和/或不需要问两到三次相同的问题……这让人们感到困扰,最终他们会忽略you@Phil:在这种情况下,请编辑旧问题以吸引新答案。见: