嵌套 Tue Sun

6.4 嵌套

6.4.1 字典列表

alien_0={'color':'yellow','point':'5'}
alien_1={'color':'red','point':'10'}    
alien_2={'color':'green','point':'15'}
aliens=[alien_0,alien_1,alien_2]#字典名不加引号
for alien in aliens:
    print(alien)
#输出
{'color': 'yellow', 'point': '5'}
{'color': 'red', 'point': '10'}
{'color': 'green', 'point': '15'}

只需要将创建好的字典名存入列表就可以实现字典列表。

alien_0={'color':'yellow','point':'5'}
alien_1={'color':'red','point':'10'}    
alien_2={'color':'green','point':'15'}
aliens=[alien_0,alien_1,alien_2]
for alien in range(30):
    alien={'color':'red','point':'10'}
    aliens.append(alien)
for alien in aliens[:5]:
    print(alien)
#输出
{'color': 'yellow', 'point': '5'}
{'color': 'red', 'point': '10'}
{'color': 'green', 'point': '15'}
{'color': 'red', 'point': '10'}
{'color': 'red', 'point': '10'}

使用for循环批量增加,再用append方法将新增的字典放到列表内,使用列表的切片输出列表的前5个字典。

vuls=[]
for vul in range(30):
    new_vul={'num':3,'level':'high'}
    vuls.append(new_vul)
print("there are "+str(len(vuls)) +" vuls.")
#输出
there are 30 vuls.

len直接得出列表的长度,str将整形转换为字符型才能字符串接字符串。

vuls=[]
for vul in range(30):
    new_vul={'num':'3','level':'high'}
    vuls.append(new_vul)   
print("there are "+str(len(vuls)) +" vuls.")
for vul in vuls[:3]:#使用`for`循环改变列表前三个字典的键值对的值
     if vul['num']=='3':#如果字典中的键值对符合条件,那么重新赋值
          vul['num']='1'
          vul['level']='serious'
for vul in  vuls[:5]:
   print(vul)

vuls=[]
for vul in range(30):
    new_vul={'num':'3','level':'high'}
    vuls.append(new_vul)   
print("there are "+str(len(vuls)) +" vuls.")
for vul in vuls[:3]:
     if vul['num']=='3':
          vul['num']='1'
          vul['level']='serious'
for vul in vuls[:4]:
     if vul['num']=='1':
          vul['num']='4'
          vul['level']='low'
for vul in  vuls[:5]:
   print(vul)

列表可以包含大量字典信息。当需要为多个用户创建字典时,这些存放在列表的字典结构相同,可以遍历或以相同的方式处理字典。

6.4.2 在字典中存储列表

pizza={
'crust':'thick',
'toppings':['mushroom','fish'],
    }
print("you order "+pizza['crust']+"-crust pizza "+
      "with the topping is: ")
for topping in  pizza['toppings']:
   print("\t"+ topping)
#输出
you order thick-crust pizza with the topping is: 
	mushroom
	fish

将一个列表作为键值对的值存放在字典当中。

#many_users.py
#2024.4.5
favorite_language={
   'amy':['c','c++'],
   'betty':['python','c'],
   }
for name,languages in favorite_language.items():
    print("\n"+name.title())
    for language in languages:
        print(language)
 #输出   
Amy
c
c++

Betty
python
c

在主循环中使用的第二个for是要便利languages列表。
列表和字典如果嵌套层级太多,就是字典套列表再套字典这样的情况,最好考虑再考虑更好的解决办法。

6.4.3 在字典中存储字典

users={
    '123':{
        'first':'a1',
        'medium':'2',
        'last':'3',
        },
    '456':{
        'first':'b4',
        'medium':'5',
        'last':'6',
        },
    }
for username,user_info in users.items():
    print("\nusername:"+username)
    full_name=user_info['first']+user_info['medium']+user_info['last']
    print("\nfull_name"+full_name.title())
#输出                                           
 username:123

full_nameA123

username:456

full_nameB456       
    

先建立一个字典,把用户名字作为字典的键,用户作为值,用户信息放在子字典内,要用相同的结构来设置用户信息。
for循环遍历字典users字典,把键存储在变量username,子字典作为值存储在user_info。打印存储在变量username里的键。
user_info存储了两个字典,根据键访问字典内部。

6-7

people={
    '1':{
        'first':'a1',
        'medium':'2',
        'last':'3',
        },
    '2':{
        'first':'b4',
        'medium':'5',
        'last':'6',
        },
    '3':{
        'first':'c3',
        'medium':'7',
        'last':'8',
        },
        
    }
for username,user_info in people.items():
    print("\nusername:"+username)
    full_name=user_info['first']+user_info['medium']+user_info['last']
    print("\nfull_name"+full_name.title())
#输出                                           
 username:1

full_nameA123

username:2

full_nameB456

username:3

full_nameC378  
    

6-8

#python的语法严格对于缩进敏感
pig={#创建字典和列表都用等号
        'name':'a1',
        'num':'1',
        },#添加了逗号在输出时会用括号括起来
cat={
        'name':'b4',
        'num':'2',
        },
dog={#字典名不用加引号
        'name':'c3',
       'num':'3',
        },
pets=[pig,cat,dog,] #字典名作为列表元素           
for i in pets:
    print(i)
#输出
({'name': 'a1', 'num': '1'},)
({'name': 'b4', 'num': '2'},)
({'name': 'c3', 'num': '3'},)

6-9

#favorite_places
favorite_places={
    'lily':['yunnan','jiangxi','guilin',],
    'tom':['yangzhou','jaingsu','beijing',],
    'amy':['hangzhou','gansu','ningxia',],
    }#将城市名放在列表内作为字典键值对的值
for name,places in favorite_places.items():#遍历字典键值对分别将键和值赋给两个变量name和places
    print(name.title()+" favorite places is ")#首字母大写的形式输出键
    for i in places:#在输出一个键后遍历一次places的值即一个列表内的所有元素
           print("\t"+i.upper())#以大写形式输出列表内的每一个元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值