Python - 字典的值可以是列表吗?
在使用Python的时候,字典(dict)里的值可以是一个列表吗?
比如说,一个字典可能长得像这样(看看KeyName3的值):
{
keyName1 : value1,
keyName2: value2,
keyName3: {val1, val2, val3}
}
我知道可以用'defaultdict',不过单个值会(可以理解地)以列表的形式返回。
我问这个问题的原因是,我的代码需要通用,这样调用者可以像从字典中获取键值一样,直接获取单个键的值,而不是以列表的形式(不需要指定pop[0]
来取列表中的第一个元素)——同时也能获取多个值作为列表。
如果不行的话,任何建议都欢迎。
如果有人能帮忙,那就太好了。
提前谢谢你,
保罗
*我在使用Python 2.6,但写的脚本也必须向后兼容Python 3.0以上的版本。
3 个回答
0
字典确实可以把列表和任何对象当作值,但字典的键不能是列表,因为列表是可变的数据结构,而键不能是可变的。要不然,键有什么用呢?
10
是的,这是可能的:
d = {}
d["list key"] = [1,2,3]
print d
输出结果:
{'list key': [1, 2, 3]}
45
没错,字典里的值可以是任何类型的Python对象。字典的键可以是任何可哈希的对象(这意味着你不能用列表作为键,但可以用元组)。
要创建一个列表,你需要用 []
,而不是 {}
:
{ keyName1 : value1, keyName2: value2, keyName3: [val1, val2, val3] }