python中字典和列表的相互嵌套问题

您所在的位置:网站首页 字典item最大字符 python中字典和列表的相互嵌套问题

python中字典和列表的相互嵌套问题

2023-09-28 08:55| 来源: 网络整理| 查看: 265

在学习过程中遇到了很多小麻烦,所以将字典列表的循环嵌套问题,进行了个浅浅的总结分类。

列表中存储字典字典中存储列表字典中存储字典易错点

首先明确:

①访问字典中的元素:dict_name[key]  /  dict_name.get(key) ②访问列表中的元素:list_name[索引] 1.列表中存储字典: ①列表中存储多个字典 p={'name':'lin','age':21} y={'name':'xue','age':20} c=[p,y] print(c) 输出结果: [{'name': 'Jonh', 'age': 18}, {'name': 'Marry', 'age': 19}] ②访问列表中字典的值 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 ③遍历访问多个值 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

 因为字典中有多个键值对,所以进行多层嵌套。

外层嵌套访问列表中的每个字典,内层嵌套访问每个字典元素的键值对。

for person in people: #在每个遍历的字典里再进行嵌套(内层循环) for k,v in person.items(): print(f"{k}:{v}")

输出结果:

name:Jonh age:18 name:Marry age:19 2.字典中存储列表 ①访问字典中的列表元素

先用list[索引]访问列表中的元素,用dict[key]方法访问字典中的值。

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]先访问字典中的值(列表)

for i in favourite_places['lin']: print(i.title())

输出结果:

Beijing Tianjin ②访问字典中的值(字典中的值为列表)

注意:直接访问字典中的值,会以列表的形式呈现。

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']

为了避免,要进行循环嵌套

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.字典中存储字典 ①字典中不能全部由字典元素组成,会报错。 p={'name':'lin','age':21} y={'name':'xue','age':20} c={p,y} print(c) TypeError Traceback (most recent call last) in 1 p={'name':'lin','age':21} 2 y={'name':'xue','age':20} ----> 3 c={p,y} 4 print(c) TypeError: unhashable type: 'dict' ②字典中的值可由字典组成 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 21 b: name xue age 20

4.容易出的小错误: ①访问顺序: 可以用dict_name[key]  /  dict_name.get(key)访问字典的值,也可以用列表索引list_name[索引]访问列表的值。但是要注意哪个在外,哪个在内,先访问外层,再访问内层,直接访问内层的会出错。 ②字典的值为列表,访问的结果是输出整个列表 需要嵌套循环遍历里面的键值对。 ③字典中不能全部由字典元素组成



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3