刚开始使用 python,试图将字典嵌套在其他数据结构、列表、集合等中。当我嵌套字典时(例如,如果我创建字典列表),我似乎无法引用键或个人命令中的值不再存在。这是一个设计特点还是我完全把它搞砸了?
请您参考如下方法:
你完全可以用 Python 做到这一点。您可以多次使用 [] 运算符——如果 a 是一个列表,那么 a[0] 就是它的第一个元素。如果第一个元素恰好是一个字典,那么您可以使用 a[0].keys() 查看它的键,并且您可以像这样从中获取值:a[ 0][“这是一把 key ”]
就像你会像这样遍历字典的键一样:
for key in my_dict:
# get the value
val = my_dict[key]
# do something with it
你可以使用一个列表元素,如果它恰好是一个字典:
for key in a[0]:
# get the value
val = a[0][key]
# do something with it
您可以很容易地创建列表列表、字典列表,甚至是值是列表(或更多字典)的字典。要引用它们,您可以迭代它们的值,或根据需要链接 [] 操作。
唯一不能做的就是使用列表或字典作为另一个字典的键。 规则之一是字典键必须不可变。数字可以,字符串可以,元组可以,但列表和字典不行。
这是一个交互式代码示例,向您展示如何构建字典列表,并再次提取它们的值:
# Here's a dictionary
a = { 'key1': 'value1', 'key2': 2 }
# Check it out
>>> type(a)
<type 'dict'>
# Print it:
>>> a
{'key1': 'value1', 'key2': 2}
# Look inside
>>> a['key1']
'value1'
# Here's another one
b = { 'abc': 123, 'def': 456 }
# Now let's make a list of them
c = [a, b]
# Check that out, too
>>> type(c)
<type 'list'>
# Print it:
>>> c
[{'key1': 'value1', 'key2': 2}, {'def': 456, 'abc': 123}]
>>> c[0]
{'key1': 'value1', 'key2': 2}
# Dig deeper
>>> c[0]['key1']
'value1'
