zoukankan      html  css  js  c++  java
  • Python——字典

      1 ##字典
      2 '''
      3 字典是一系列键 — 值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。
      4 事实上,可将任何Python对象用作字典中的值。
      5 '''
      6 ##初始化book字典
      7 book={'类别':'教育书籍','书名':'python从入门到实践'}
      8 print(book)
      9 print(book['类别'])
     10 print(book['书名'])
     11 ##访问字典的值
     12 book_name=book['书名']
     13 print(book_name)
     14 ##添加键值对(字典是动态结构,可随时添加键值对。可依次指定字典名、用方括号括起的键和相关联的值)
     15 book['数量']=20
     16 book['作者']='Eric Matthes'
     17 print(book)
     18 ##创建空字典,并添加键值对
     19 phone={}
     20 phone['类别']='智能机'
     21 phone['名称']='华为'
     22 print(phone)
     23 ##修改字典中的值
     24 phone['名称']='苹果'
     25 print(phone)
     26 phone={'名称':'小米',}##对字典重新赋值的操作
     27 print(phone)
     28 ##案例:
     29 '''
     30 对一个能够以不同速度移动的外星人的位置进行跟踪。为此,我们
     31 将存储该外星人的当前速度,并据此确定该外星人将向右移动多远:
     32 '''
     33 alien={'x_position':0,'y_position':25,'speed':'medium'}
     34 print("orignal x_position:"+str(alien['x_position']))
     35 # 向右移动外星人
     36 # 据外星人当前速度决定将其移动多远
     37 if alien['speed']=='slow':
     38     x_increment=1
     39 elif alien['speed']=='medium':
     40     x_increment=2
     41 else:
     42     x_increment=3
     43 # 新位置等于老位置加上增量
     44 alien['x_position']+=x_increment
     45 print('new x_position:'+str(alien['x_position']))
     46 
     47 ##删除键值对
     48 element={'名称':'字典元素','数量':20,'大小':8}
     49 print(element)
     50 del element['大小']
     51 print(element)
     52 ##字典的另外一种写法
     53 favorite_languages={
     54     'jen':'python',
     55     'ben':'java',
     56     'edward':'ruby',
     57     'phil':'c',
     58 }
     59 ###遍历字典(遍历所有的键 —值对)
     60 print('遍历favorite_languages所有的键-值对:')
     61 for key,value in favorite_languages.items():
     62     print('
    key:'+key)
     63     print('value:'+value+'
    ')
     64 '''
     65 注意,即便遍历字典时,键 — 值对的返回顺序也与存储顺序不同。Python不关心键 — 值对的存
     66 储顺序,而只跟踪键和值之间的关联关系。
     67 '''
     68 ##按顺序遍历字典的所有键
     69 print('按顺序遍历字典的所有键:')
     70 for key in favorite_languages.keys():
     71     print(key)
     72 ##按顺序遍历字典的所有值:
     73 print("按顺序遍历字典的所有值:")
     74 for value in favorite_languages.values():
     75     print(value)
     76 '''
     77 上面这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,
     78 最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的:
     79 '''
     80 favorite_food={
     81     '小明':'红烧肉',
     82     '康康':'莲藕',
     83     '增哥':'红烧肉',
     84     '强哥':'火锅',
     85 }
     86 print('按顺序遍历字典的所有值,有重复项:')
     87 for food in favorite_food.values():
     88     print(food)
     89 ###使用集合set()剔除重复项
     90 print('使用集合set()剔除重复项之后的值:')
     91 for food in set(favorite_food.values()):
     92     print(food)
     93 ##嵌套字典
     94 '''
     95 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你
     96 可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
     97 '''
     98 my_list1={'color':'red','point':5}
     99 my_list2={'color':'green','point':6}
    100 my_list3={'color':'black','point':8}
    101 '''嵌套字典'''
    102 my_list=[my_list1,my_list2,my_list3]
    103 print('遍历这个嵌套字典列表:')
    104 for my_list_show in my_list:
    105     print(my_list_show)
    106 '''案例2:'''
    107 
    108 # 创建一个用于存储外星人的空列表
    109 print('----------------------------------')
    110 print('------------外星人-------------')
    111 alien_dict=[]
    112 #创建30个外星人
    113 for alien_number in range(30):
    114     new_alien={'color':'green','point':5,'speed':'slow'}
    115     alien_dict.append(new_alien)
    116 #修改外星人的值
    117 for alien_show in alien_dict[:3]:
    118     if alien_show['color']=='green':
    119         alien_show['color']='yellow'
    120         alien_show['speed']='fast'
    121         alien_show['种类']='精英'
    122 #显示前五个外星人
    123 print('显示前五个外星人')
    124 for alien_show in alien_dict[:5]:
    125     print(alien_show)
    126 
    127 ## 显示创建了多少个外星人
    128 print('共创建了外星人有:'+str(len(alien_dict)))
    129 
    130 ##在字典中存储列表
    131 #披萨的信息
    132 pizza={
    133     '厨师':'汤米',
    134     '配料':['生菜','鸡蛋','面粉','牛肉']
    135 }
    136 #概述所点披萨
    137 print('披萨的厨师是:'+str(pizza['厨师'])+'
    配料有:')
    138 for topping  in pizza['配料']:
    139     print('	'+topping)
    140 love_language={
    141     '小明':['C语言','Python'],
    142     '强哥':['C语言','shell'],
    143     '平哥':['python'],
    144     '康康':['C#'],
    145 }
    146 for name,languages in love_language.items():
    147     print('
    '+name+'喜欢的语言有:')
    148     for lang in languages:
    149         print(lang)
    150 ##在字典中存储字典和列表
    151 print('------------------------------------')
    152 print('打印张三丰和王重阳的信息:')
    153 users={
    154     '张三丰':{
    155         '姓氏':'',
    156         '名称':'三丰',
    157         '居住地':'武当山',
    158         '门派':'武当派',
    159         '嫡传弟子':['宋远桥','俞莲舟','俞岱岩','张松溪','张翠山','殷梨亭','莫声谷']
    160     },
    161     '王重阳':{
    162         '姓氏':'',
    163         '名称':'重阳',
    164         '居住地':'终南山',
    165         '门派':'全真教',
    166         '嫡传弟子':['马钰','谭处端','刘处玄','丘处机','王处一','郝大通','孙不二']
    167     }
    168 }
    169 for user_name,user_info in users.items():
    170     print('姓名:'+user_name)
    171     last_name=user_info['姓氏']
    172     first_name=user_info['名称']
    173     home=user_info['居住地']
    174     family=user_info['门派']
    175     child=user_info['嫡传弟子']
    176     print('姓氏:'+last_name)
    177     print('名称:'+first_name)
    178     print('居住地:'+home)
    179     print('门派:'+family)
    180     print('嫡传弟子:'+str(child))
    181     print('
    
    
    ')
  • 相关阅读:
    Scala中的构造器和高阶函数
    Scala中的元组
    Scala中的Map
    Scala中的If判断&While&For循环
    [改善Java代码]asList方法产生的List对象不可更改
    [改善Java代码]避开基本类型数组转换列表陷阱
    [改善Java代码]枚举和注解结合使用威力更大
    [改善Java代码]枚举项的数量限制在64个以内
    [改善Java代码]用枚举实现工厂方法模式更简洁
    [改善Java代码]在switch的default代码块中增加AssertionError错误
  • 原文地址:https://www.cnblogs.com/best-mingge/p/12849849.html
Copyright © 2011-2022 走看看