• Python开发——数据类型【字典】


    字典的定义

     1 # Python语言中唯一的类型映射
     2 # 键与值之间用“:”分开
     3 # 项与项之间用“,”分开
     4 person = {"name":"yuan","age":18}
     5 print(person)           # {'name': 'yuan', 'age': 18}
     6 
     7 person = dict(name='yuan',age=18)
     8 print(person)           # {'name': 'yuan', 'age': 18}
     9 
    10 person = dict({"name":"yuan","age":18})
    11 print(person)           # {'name': 'yuan', 'age': 18}

    字典的特性

    1 # key-value结构
    2 # key必须可hash、且必须为不可变数据类型、必须唯一
    3 # 可存放任意多个值、可修改、可以不唯一
    4 # 无序

    字典的内置函数

    长度、循环

     1 # 字典
     2 dic = {
     3     "k1":"v1",
     4     "k2":"v2"
     5 }
     6 # 长度
     7 print(len(dic))     # 2
     8 
     9 # 返回一个包含字典所有key的列表
    10 k = dic.keys()
    11 print(k)            # dict_keys(['k1', 'k2'])
    12 # 返回一个包含字典所有value的列表
    13 v = dic.values()
    14 print(v)            # dict_values(['v1', 'v2'])
    15 # 返回一个包含字典所有(键,值)元祖的列表
    16 i = dic.items()
    17 print(i)            # dict_items([('k1', 'v1'), ('k2', 'v2')])
    18 # 循环
    19 for k in dic.keys():
    20     print(k)
    21 for k,v in dic.items():
    22     print(k)
    23     print(v)
    24 for k in dic:
    25     print(k)

    清空、复制、创建

     1 # 清空
     2 dic.clear()
     3 print(dic)      # {}
     4 dic = {
     5     "k1":"v1",
     6     "k2":"v2"
     7 }
     8 # 复制
     9 dic2 = dic.copy()
    10 print(dic2)     # {'k1': 'v1', 'k2': 'v2'}
    11 # 根据序列,【创建字典】,并指定统一的值
    12 dic2 = {}.fromkeys(["k1",56,"999"],123)
    13 print(dic2)        # {'k1': 123, 56: 123, '999': 123}

    查看

     1 # 字典
     2 dic = {
     3     "k1":"v1",
     4     "k2":"v2"
     5 }
     6 # 根据key,获取字典中对应的值
     7 # 若key不存在字典中,则报错
     8 v = dic['k1']
     9 print(v)        # v1
    10 # 根据key,获取字典中对应的值
    11 # 若key不存在字典中,则返回default的值
    12 # dict.get(key,default = None)
    13 v = dic.get("k1")
    14 print(v)        # v1

    删除

     1 # 字典
     2 dic = {
     3     "k1":"v1",
     4     "k2":"v2",
     5     "k4":"v4"
     6 }
     7 # 指定某一个key删除,并打印删除的元素
     8 v = dic.pop("k1")
     9 print(dic)      # {'k2': 'v2', 'k4': 'v4'}
    10 print(v)        # v1
    11 # 随机删除
    12 k,v = dic.popitem()
    13 print(dic)      # {'k2': 'v2'}
    14 print(k,v)      # k4 v4

    新增、修改

     1 # 字典新增、修改
     2 dic = {
     3     "k1":"v1",
     4     "k2":"v2"
     5 }
     6 # 若key在字典中不存在,则新增
     7 # 若key在字典中存在,则更新
     8 dic['kn'] = 'vn'
     9 print(dic)      # {'k1': 'v1', 'k2': 'v2', 'kn': 'vn'}
    10 # 设置值,若key在字典中不存在,新增
    11 #         若key在字典中存在,返回原来的值,
    12 v = dic.setdefault("k3","123")
    13 print(v)        # 123
    14 print(dic)      # {'k1': 'v1', 'k2': 'v2', 'kn': 'vn', 'k3': '123'}
    15 
    16 # dic.dic2将字典dic2的键值对添加到字典dic中
    17 dic.update({"k2":"3546"})
    18 print(dic)      # {'k1': 'v1', 'k2': '3546', 'kn': 'vn', 'k3': '123'}
    19 dic.update(k2="789",k5 = 345)
    20 print(dic)      # {'k1': 'v1', 'k2': '789', 'kn': 'vn', 'k3': '123', 'k5': 345}

     例题:三级菜单

    需求:
      可依次选择进入各子菜单
      可从任意一层往回退到上一层
      可从任意一层退出程序
      所需新知识点:列表、字典
     1 # 字典
     2 menu = {
     3     '北京':{
     4         '海淀':{
     5             '五道口':{
     6                 'soho':{},
     7                 '网易':{},
     8                 'google':{}
     9             },
    10             '中关村':{
    11                 '爱奇艺':{},
    12                 '汽车之家':{},
    13                 'youku':{}
    14             },
    15             '上地':{
    16                 '百度':{}
    17             }
    18         },
    19         '昌平':{
    20             '沙河':{
    21                 '老男孩':{},
    22                 '北航':{}
    23             },
    24             '天通苑':{},
    25             '回龙观':{}
    26         },
    27         '朝阳':{},
    28         '东城':{}
    29     },
    30     '上海':{
    31         '闵行':{
    32             '人民广场':{
    33                 '炸鸡店':{}
    34             }
    35         },
    36         '闸北':{
    37             '火车战':{
    38                 '携程':{}
    39             }
    40         },
    41         '浦东':{}
    42     },
    43     '山东':{}
    44 }
    45 
    46 # 列表
    47 list = []
    48 # 输入字母“q”为返回上一层,
    49 # 输入字母“b”为退出
    50 while len(list) < 4:
    51     # 输出
    52     lLength = len(list)
    53     if lLength ==0:
    54         iItem = menu
    55     elif lLength == 1:
    56         iItem = menu[list[0]]
    57     elif lLength == 2:
    58         iItem = menu[list[0]][list[1]]
    59     elif lLength == 3:
    60         iItem = menu[list[0]][list[1]][list[2]]
    61     list_k = []     # 列表,用于存储,显示关键字
    62     for k in iItem:
    63         list_k.append(k)
    64     # 判断子地区列表是否为空---开始
    65     if len(list_k) == 0:
    66         print("当前地区下,已无子地区可选")
    67         break
    68     else:
    69         print(list_k)
    70         dq = input("请输入要选择的地区:")
    71         # 对输入内容进行判断---开始
    72         if dq == 'q':
    73             list.pop()
    74         elif dq == 'b':
    75             print("您已退出!")
    76             break
    77         elif dq in list_k:
    78             list.append(dq)
    79         else:
    80             print("输入地区有误!")
    81             break
    82         # 对输入内容进行判断---结束
    83     # 判断子地区列表是否为空---结束
    84 else:
    85     print("当前已无地区可选!")
    86 print("---The end---")
  • 相关阅读:
    HDU 1584 蜘蛛牌(DFS)
    HDU 1800 Flying to the Mars(贪心)
    zsh: command not found: java (xxx)
    Deepin20安装Mysql8
    Deepin全局菜单
    Ubuntu PPA 解读
    Node安装与配置
    Windows安装配置Maven
    idea 安装 Vue 插件没有Vue component选项
    Linux桌面系统创建应用程序快捷方式
  • 原文地址:https://www.cnblogs.com/yuanlili/p/8569161.html
Copyright © 2020-2023  润新知