Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python混淆:dict.pop_Python_Django - Fatal编程技术网

python混淆:dict.pop

python混淆:dict.pop,python,django,Python,Django,我真的很困惑为什么Python会以一种特殊的方式运行 这里有一个例子:我有一本字典叫“copy”。(这是django中HttpRequest.POST的副本。) 以下是调试会话(添加了行号): 1(Pdb)副本 2. 4(Pdb)副本[“文本”] 5“测试” 6(Pdb)copy.pop(“文本”) 7[u'测试'] 我的问题是,在字典中,值似乎都是列表(它们来自django),当我访问第4行中的元素时,我将其作为值而不是列表获取,但当我使用pop访问它时,我将其再次作为列表获取 我真的很困惑

我真的很困惑为什么Python会以一种特殊的方式运行

这里有一个例子:我有一本字典叫“copy”。(这是django中HttpRequest.POST的副本。)

以下是调试会话(添加了行号):

1(Pdb)副本
2.
4(Pdb)副本[“文本”]
5“测试”
6(Pdb)copy.pop(“文本”)
7[u'测试']
我的问题是,在字典中,值似乎都是列表(它们来自django),当我访问第4行中的元素时,我将其作为值而不是列表获取,但当我使用pop访问它时,我将其再次作为列表获取

我真的很困惑。有人能帮忙吗?

看看for
QueryDict
s。简短的回答是它是
dict
的一个子类,它修改了获取项目的方式,因此
copy['text']
将返回与
'text'
相关的值列表中的最后一个值。因为它们没有覆盖
pop
,所以它将返回整个列表

您可以使用获取与特定值关联的列表:

copy['text']
>>> u'test'

copy.getlist('text')
>>> [u'test']

原因是一些HTML元素会为一个键返回多个值。

您应该编辑问题的标题:这根本不是Python dict的问题,尤其是Django querydics的问题。
copy['text']
>>> u'test'

copy.getlist('text')
>>> [u'test']