Python—dict可以有一个列表值吗?

Python—dict可以有一个列表值吗?,python,list,dictionary,key-value,Python,List,Dictionary,Key Value,使用Python时,dict是否可能有一个列表值 例如,一个类似以下内容的字典(请参见KeyName3的值): 我已经知道我可以使用'defaultdict',但是单个值(可以理解)作为列表返回 我询问的原因是,我的代码必须是通用的,以便调用者可以将单个键值重设为一个项(就像从dict键值中重设),而不是作为列表重设(无需指定pop[0]list)——但是也可以将多个值作为列表检索 如果不是的话,那么任何suugestions都是受欢迎的 如果有人能帮忙,那就太好了 提前感谢, 保罗 *不过,我

使用Python时,dict是否可能有一个列表值

例如,一个类似以下内容的字典(请参见KeyName3的值):

我已经知道我可以使用'defaultdict',但是单个值(可以理解)作为列表返回

我询问的原因是,我的代码必须是通用的,以便调用者可以将单个键值重设为一个项(就像从dict键值中重设),而不是作为列表重设(无需指定
pop[0]
list)——但是也可以将多个值作为列表检索

如果不是的话,那么任何suugestions都是受欢迎的

如果有人能帮忙,那就太好了

提前感谢,

保罗


*不过,我正在使用Python 2.6编写的脚本也必须与Python 3.0+向前兼容。

是的。dict中的值可以是任何类型的python对象。键可以是任何可哈希对象(不允许列表,但允许元组)

您需要使用
[]
,而不是
{}
来创建列表:

{ keyName1 : value1, keyName2: value2, keyName3: [val1, val2, val3] }
是的,有可能:

d = {}
d["list key"] = [1,2,3]
print d
输出:

{'list key': [1, 2, 3]}

它肯定可以有一个列表和任何对象作为值,但字典不能有一个列表作为键,因为列表是可变的数据结构,键不能可变,否则它们的用途是什么。

请阅读此处了解详细信息:注意,如果您是python新手,那么教程是您测试此类简单内容的最佳朋友,只需使用python的交互模式。你可以通过实验发现什么是允许的,什么是不允许的。@Paul Kernaghan:当你尝试时,你观察到了什么?啊!这很有效。感谢您的帮助,非常感谢。之所以可以使用元组而不是列表,是因为列表是可变的,因此任何基于其“值”的计算都不会是幂等的(计算意义)。@geoffspear,很酷,但是如何通过键名3和列表值2获得值?@Eswemenasja yourdict[“键名3”][2]但是如何解包
keyName3
?这样
val1
val2
val3
将包含
keyName3
{'list key': [1, 2, 3]}