首先明确:
1.访问字典中的元素:dict_name[key] / dict_name.get(key)
2.访问列表中的元素:list_name[索引]
1.列表中存储字典:
1.列表中存储多个字典
1
2
3
4
|
p = { 'name' : 'lin' , 'age' : 21 }
y = { 'name' : 'xue' , 'age' : 20 }
c = [p,y]
print (c)
|
输出结果:
[{'name': 'Jonh', 'age': 18}, {'name': 'Marry', 'age': 19}]
2.访问列表中字典的值
1
2
3
|
print(f "person's name is {people[0].get('name')}" )
print(f "{people[1].get('name')}'s age is {people[1].get('age')}" )
#先用person[0/1]访问列表里的元素(字典),再用get方法访问字典里的值
|
输出结果:
person's name is Jonh
Marry's age is 19
3.遍历访问多个值
1
2
3
4
|
for person in people:
#将列表中的字典,依次赋值给person
print (f "{person['name']}'s age is {person['age']}" )
#取出每个循环里变量person(字典)的键和值
|
输出结果:
Jonh's age is 18
Marry's age is 19
因为字典中有多个键值对,所以进行多层嵌套。
外层嵌套访问列表中的每个字典,内层嵌套访问每个字典元素的键值对。
1
2
3
4
|
for person in people:
#在每个遍历的字典里再进行嵌套(内层循环)
for k,v in person.items():
print (f "{k}:{v}" )
|
输出结果:
name:Jonh
age:18
name:Marry
age:19name:Jonh
age:18
name:Marry
age:19
2.字典中存储列表
1.访问字典中的列表元素
先用list[索引]访问列表中的元素,用dict[key]方法访问字典中的值。
1
2
3
4
5
6
7
8
9
|
favourite_places = {
'lin' :[ 'beijing' , 'tianjin' ],
'jing' :[ 'chengdu' , 'leshan' ],
'huang' :[ 'shenzhen' ]
}
#访问字典中的值可以用:dict_name[key]
print (favourite_places[ 'lin' ])
#访问列表里面的元素用索引:list_name[索引]
print (favourite_places[ 'lin' ][ 0 ].title())
|
输出结果:
['beijing', 'tianjin']
Beijing
循环访问字典中列表的元素,也是要用dict_name[key]先访问字典中的值(列表)
1
2
|
for i in favourite_places[ 'lin' ]:
print (i.title())
|
输出结果:
Beijing
Tianjin
2.访问字典中的值(字典中的值为列表)
注意:直接访问字典中的值,会以列表的形式呈现。
1
2
|
for name,place in favourite_places.items():
print (f "{name.title()}'s favourite places are {place}" )
|
输出结果:
Lin's favourite places are ['beijing', 'tianjin']
Jing's favourite places are ['chengdu', 'leshan']
Huang's favourite places are ['shenzhen']
为了避免,要进行循环嵌套
1
2
3
4
|
for names,places in favourite_places.items(): #对三个键值对先进行一个大循环
print (f '{names.title()} favourite places are:' ) #在大循环里每一组键值对开头先打印这句话
for place in places: #之后再对值进行一个小循环,打印出值中的每个元素
print (place.title())
|
输出结果:
Lin favourite places are:
Beijing
Tianjin
Jing favourite places are:
Chengdu
Leshan
Huang favourite places are:
Shenzhen
3.字典中存储字典
1.字典中不能全部由字典元素组成,会报错。
1
2
3
4
|
p = { 'name' : 'lin' , 'age' : 21 }
y = { 'name' : 'xue' , 'age' : 20 }
c = {p,y}
print (c)
|
TypeError Traceback (most recent call last)
<ipython-input-46-4127ab9ea962> in <module>
1 p={'name':'lin','age':21}
2 y={'name':'xue','age':20}
----> 3 c={p,y}
4 print(c)TypeError: unhashable type: 'dict'
2.字典中的值可由字典组成
1
2
3
4
5
6
7
8
9
10
11
12
|
users = {
'a' :{ 'name' : 'lin' , 'age' : 21 },
'b' :{ 'name' : 'xue' , 'age' : 20 }
}
print ( '-----------直接访问输出-------------------' )
print (users[ 'a' ][ 'name' ],users[ 'a' ][ 'age' ])
print (users[ 'b' ][ 'name' ],users[ 'b' ][ 'age' ])
print ( '\n-----------循环嵌套的方法输出-------------------' )
for username,userinfo in users.items():
print ( '\n' + username + ':' )
for name,age in userinfo.items():
print (name,age)
|
输出结果:
-----------直接访问输出-------------------
lin 21
xue 20-----------循环嵌套的方法输出-------------------
a:
name lin
age 21b:
name xue
age 20
4.容易出的小错误:
1.访问顺序: 可以用dict_name[key] / dict_name.get(key)
访问字典的值,也可以用列表索引list_name[索引]访问列表的值。但是要注意哪个在外,哪个在内,先访问外层,再访问内层,直接访问内层的会出错。
2.字典的值为列表,访问的结果是输出整个列表 需要嵌套循环遍历里面的键值对。
3.字典中不能全部由字典元素组成
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/Wanster/article/details/121319837