python入门基础(8)--python中的嵌套

嵌套:将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。 既可以在列表中嵌套字典,也可以在字典中嵌套列表,甚至在字典中嵌套字典

一、列表中嵌套字典  

1)一般创建方式:

student_A ={ '  name  ' : '  Allen  ' , '  age  ' : '  14  ' , '  grade  ' : '  8  '  } 
student_B
={ ' name ' : ' Jack ' , ' age ' : ' 12 ' , ' grade ' : ' 6 ' }
student_C
={ ' name ' : ' Lucy ' , ' age ' : ' 13 ' , ' grade ' : ' 7 ' }
student_D
={ ' name ' : ' polo ' , ' age ' : ' 14 ' , ' grade ' : ' 8 ' } # 上述四行,创建了4个字典,每个字典代表一个学生 students=[student_A,student_B,student_C,student_D] # 将上述4个学生放名为students的列表中 for student in students: # 遍历students列表 print (student) # 打印每个学生 print ( " \n " )

 2)批量创建同类型的字典,比如游戏中很多同类型小兵

 #  创建更多的同类型的字典 
ghosts=[]       #  创建一个空ghosts列表 
 for  ghost_number  in  range(10):   #  创建10个ghost,注意range(10)是从0-9 
    new_ghost={ '  name  ' : '  rubbish  ' , '  life  ' : '  10  ' , '  speed  ' : '  1  ' }     #  同类型的名字rubbish,颜色为green,生命力为10,速度为1 
    ghosts.append(new_ghost)    #  append()是将创建的new_ghost放到列表ghosts最后 
    
 for  ghost  in  ghosts:    #  遍历创建的ghosts列表 
     print (ghost)    #  打印ghosts中的每个元素,即10个同类型的ghost 
    
 print ( "  Total number of ghosts:  " +str(len(ghosts)))     #  打印ghosts列表中元素的个数,len()求元素个数,str()转为字符串 

 3)同类型的字典,可通过循环,及切片进行增、删、改等操作。

 for  ghost  in  ghosts[0:3 ]:  if  ghost[ '  color  ' ] ==  '  green  '  :
ghost[
' color ' ] = ' yellow ' ghost[ ' speed ' ] = 2 ghost[ ' life ' ] = 5 for ghost in ghosts: print (ghost)

运行如果:

 二、字典中嵌套列表

比如在实际生活中,描述菜单,如果使用列表,只能存储菜肴的配料;但如果使用字典,就不仅可在其中包含配料列表,还可包含其他有关描述。
如下示例,存储了菜单的两方面信息:菜肴类型和配料列表。
其中的配料列表是一个与键 'toppings' (佐料)相关联的值。
要访问该列表,使用字典名和键 'toppings' ,就像访问字典中的其他值一样,这将返回一个配料列表,而不是单个值

1)嵌套一个列表

 #  存储所点菜单的信息 
menu = {   # 定义一个菜单字典   '  style  ' :  '  sichuan  '  ,   #定义菜单的类型,四川菜   '  toppings  ' : [ '  salt  ' ,  '  sugar  ' , '  vinegar  ' , '  Sichuan Pepper  ' ]   #  定义一个佐料的列表,包含盐、糖、醋、花椒 
}    #  存储了有关顾客所点菜肴的信息  #  概述所点的菜单 
 print ( "  You ordered a  "  + menu[ '  style  ' ] +  "  -style menu  "  +
 "  with the following toppings:  "  )  for  topping  in  menu[ '  toppings  '  ]:  print ( "  \t  "  + topping)

2)嵌套多个列表

favor_languages = {  '  jack  ' : [ '  python  ' ,  '  ruby  '  ],  '  sarah  ' : [ '  c  ' , '  C++  '  ],  '  edward  ' : [ '  ruby  ' ,  '  go  '  ],  '  polo  ' :[ '  c#  ' , '  java  '  ]
}
for name, languages in favor_languages.items(): print ( " \n " + name.title() + " 's favorite languages are: " ) for language in languages: print ( " \t " + language.title())

 

三、在字典中存储字典

网站有多个用户,每个都有独特ID(或用户名),可以在字典中将用户名作为键,再将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。对于每位用户,都存储了其三项信息:名、姓和居住地;为访问这些信息,遍历所有的用户名,并访问与每个用户名相关联的信息字典

 #  在字典中嵌套字典 
users = {     #  创建一个users的字典,字典中有两个关键字(id)lucyb和merryb, 
 '  lucyb  ' : { '  firstname  ' :  '  lucy  ' , '  lastname  ' : '  Bush  ' , '  location  ' :  '  califorlia  '  },  '  merryb  ' :{ '  firstname  ' : '  merry  ' , '  lastname  ' : '  Biden  ' , '  location  ' : '  San Francisco  '  }
}
# lucyb和merryb又分别为两字典,各自有三个关键字,firstname,lastname和location for username, user_info in users.items(): # 遍历字典uers的每一项 print ( " \nUsername: " + username)
full_name
= user_info[ ' firstname ' ] + " " + user_info[ ' lastname ' ]
location
= user_info[ ' location ' ] print ( " \tFull name: " + full_name.title()) print ( " \tLocation: " + location.title())

运行结果:

 

标签: python

添加新评论