Python中列表的神秘命名

Python中列表的神秘命名,python,Python,我正在用python编写一个程序,我正在使用字典。我需要为字典中的每个键创建一个空列表,并且每个列表需要与键具有相同的名称。这些键是用户输入的,这就是为什么我不能用传统的方式列出。 这是我尝试的第一件事 a = {"x":1, "y":2, "z"3} list(a.keys()) a.pop() = [] # This raises an error 在创建词典时,我也尝试列出这些列表,但这也不起作用: a = {} b = input("INPUT1") c = input("INPU

我正在用python编写一个程序,我正在使用字典。我需要为字典中的每个键创建一个空列表,并且每个列表需要与键具有相同的名称。这些键是用户输入的,这就是为什么我不能用传统的方式列出。 这是我尝试的第一件事

a = {"x":1, "y":2, "z"3}
list(a.keys())
a.pop() = []   # This raises an error
在创建词典时,我也尝试列出这些列表,但这也不起作用:

a = {}
b = input("INPUT1")
c = input("INPUT2")
a[b] = c
b = []
这创建了一个名为“b”的列表,而不是用户输入的任何内容。请帮忙

改用
input
需要一个有效的Python表达式,并将计算用户输入的任何内容。因此,如果用户输入一个单词,它将对该单词求值,并尝试找到一个具有其名称的对象

编辑:为了进一步澄清,例如,
input(“INPUT1”)
相当于执行
eval(原始输入(“INPUT1”)

使用
input
需要一个有效的Python表达式,并将计算用户输入的任何内容。因此,如果用户输入一个单词,它将对该单词求值,并尝试找到一个具有其名称的对象


编辑:为了进一步澄清,例如,
input(“INPUT1”)
相当于执行
eval(原始输入(“INPUT1”)

这真的没有多大意义。为什么您的列表需要“名称”?那么,你说的“名字”是什么意思

其次,你的代码什么都不做
a.keys()
已经是一个列表。在其上调用
列表
不会执行任何其他操作。但在任何情况下,无论该行的结果是什么,它都会立即被丢弃,因为您不会将结果存储在任何地方

pop
不适用于字典,它适用于列表。将
pop
的结果设置为列表意味着什么?您是否正在尝试使用字典中每个键的名称动态创建一组局部变量?若然,原因为何?为什么不简单地创建另一个包含第一个键的字典,并将每个值作为一个新列表?这可以通过一个命令完成:

b = dict((k, []) for k in b.keys())

(注意dict.fromkeys()在这里不起作用,因为这会导致每个元素共享同一个列表。)

这真的没有多大意义。为什么您的列表需要“名称”?那么,你说的“名字”是什么意思

其次,你的代码什么都不做
a.keys()
已经是一个列表。在其上调用
列表
不会执行任何其他操作。但在任何情况下,无论该行的结果是什么,它都会立即被丢弃,因为您不会将结果存储在任何地方

pop
不适用于字典,它适用于列表。将
pop
的结果设置为列表意味着什么?您是否正在尝试使用字典中每个键的名称动态创建一组局部变量?若然,原因为何?为什么不简单地创建另一个包含第一个键的字典,并将每个值作为一个新列表?这可以通过一个命令完成:

b = dict((k, []) for k in b.keys())

(注意dict.fromkeys()在这里不起作用,因为这会导致每个元素共享同一个列表。)

我有点困惑。。。。你为什么不把这些单子放在字典里呢?是否要创建具有动态名称的变量?菲尔:你对丹尼尔的回答加了一条评论。我建议你编辑你的问题,指定你拥有什么和你想要得到什么,让我们跳过你关于如何获得的(可能不正确)假设来帮助你。我有点困惑。。。。你为什么不把这些单子放在字典里呢?是否要创建具有动态名称的变量?菲尔:你对丹尼尔的回答加了一条评论。我建议您编辑您的问题,并指定您拥有什么以及您想要得到什么,让我们跳过您关于如何使用的假设(可能不正确)。仅供参考,字典上有一个pop方法。但是,是的,这个问题毫无意义。也许我使用了错误的方法。我想做的是写一个程序,记录学生所有课程的成绩。学生添加了课程,还添加了课程的不同部分以及它们的权重,这就是我使用字典的原因。字典可能是这样的:{“家庭作业”:.2,“测试”:.8}。每门课程可能有不同的权重,甚至可能有不同的分段数。所以为了跟踪成绩,我想做一个家庭作业清单和一个测试清单,学生可以输入他的成绩@无论如何,字典上有一种流行的方法。但是,是的,这个问题毫无意义。也许我使用了错误的方法。我想做的是写一个程序,记录学生所有课程的成绩。学生添加了课程,还添加了课程的不同部分以及它们的权重,这就是我使用字典的原因。字典可能是这样的:{“家庭作业”:.2,“测试”:.8}。每门课程可能有不同的权重,甚至可能有不同的分段数。所以为了跟踪成绩,我想做一个家庭作业清单和一个测试清单,学生可以输入他的成绩@除非他使用的是Python3,
raw\u input
被重命名为
input
。哦,对了,我完全忘了。因为这里的大多数问题都是Python2.x,所以我假设是这样的:除非他使用的是Python3,
raw\u input
被重命名为
input
。哦,对了,我完全忘了。因为这里的大多数问题都是Python2.x,所以我假设是这样的: