• 字典


    字典
    • 可变(不可哈希)数据类型:list dict 集合
    • 不可变(可哈希)数据类型:str int 元组
    dic = {'船长:': {'name': '路飞', 'age': 18, 'dream': '海贼王'},
           '成员': ['乔巴', '乌索普', '娜美', '罗宾', '山治', '索隆', '布鲁克', '甚平', '弗兰奇']
           }
    
    键必须是不可变的数据类型, str int bool tuple(最常用str、int), 字典的值可以是任意数据类型、对象

    字典在3.5之前是无序的, 字典在3.6版本初建字典的顺序排列,学术上不认为是有序的,在3.7版本后是有序的

    # 字典的键应该是唯一的。如果不是唯一的,后面的键会把前面面的覆盖掉
    # print({'age':1, 'age':2})
    
    字典的创建方式
    dic1 = dict((('托尼托尼乔巴', '医生'), ('娜美', '航海士'))) # 内置函数中放元组,元组中多个元素,利用元组拆包
    print(dic1)  # {'托尼托尼乔巴': '医生', '娜美': '航海士'}
    dic2 = dict(name='罗宾', job='历史学家')
    print(dic2)  # {'name': '罗宾', 'job': '历史学家'}
    dic3 = dict({'name': '索隆', 'dream':'世界第一大剑豪'})
    print(dic3)
    
    # 字典的键应该是唯一的。如果不是唯一的,后面的键会把前面面的覆盖掉
    # print({'age':1, 'age':2})
    
    # 字典的增删改查
    # 增
    dic = {'name': '张三', 'age': 14}
    dic['hobby'] = 'game' # 没有这个键则增加
    print(dic)   # {'name': '张三', 'age': 14, 'hobby': 'game'}
    dic['age'] = 23  # 键存在则修改
    print(dic)  # {'name': '张三', 'age': 23, 'hobby': 'game'}
    
    # 增 setdefault
    dic = {'name': '李四', 'hobby': 'basketball'}
    # setdefault 如果没有此键,则添加,如果有此键,则不添加
    dic.setdefault('sex', '男') # 无则添加
    print(dic)  # {'name': '李四', 'hobby': 'basketball', 'sex': '男'}
    dic.setdefault('hobby', 'game')  # 有则不变
    print(dic)  # {'name': '李四', 'hobby': 'basketball', 'sex': '男'}
    
    # 删除 pop 有返回值 (常用pop 如果删除的键不存在,可以设置两个键,不会报错;用del会报错)
    dic3 = {'name': '索隆', 'dream':'世界第一大剑豪', 'age': 19}
    result = dic3.pop('age')  # 有age这个键会删除,如果没有没报错的
    print(result)  # 19
    print(dic3)   # {'name': '索隆', 'dream': '世界第一大剑豪'}
    dic3.pop('age', '报错信息测试') #  设置两个键,如果字典age这个键,不会报错
    
    # clear 清空字典中的内容
    dic = {'name': '哈哈', 'dream':'to be number', 'age': 19}
    dic.clear()
    print(dic)  # {}
    
    # 删除 del (没有pop好用, 键不存在会报错)
    dic = {'name': '哈哈', 'dream':'to be number', 'age': 19}
    del dic['name']   # {'dream': 'to be number', 'age': 19}
    print(dic)
    

    dic = {'name': '哈', 'dream':'to be number', 'age': 19}
    dic['name'] = '哼'
    print(dic)  # {'name': '哼', 'dream': 'to be number', 'age': 19}
    
    # 查
    dict1 = {'name': '鹰眼米霍克', 'age': 19, 'hobby': ['海贼', '剑术']}
    print(dict1['hobby'])  # ['海贼', '剑术'] # 如果没有这个键会报错
    
    #查 get
    print(dict1.get('666'))  # None 没有此键返回None
    print(dict1.get('666', '提示没有这个键')) # 指定两个参数,不会报错。 返回第2个参数的信息:提示没有这个键
    
    # 查 keys values items
    dic = {'name': '哈哈', 'dream':'to be number', 'age': 19}
    print(dic.values())  # 注意返回的不是纯列表。dict_values(['哈哈', 'to be number', 19])
    l = list(dic.keys()) # 键可转化为列表
    print(l)  # ['name', 'dream', 'age']
    
    # 键
    for k in dic:
           print(k)
    '''
    name
    dream
    age
    '''
    
    # 值
    for value in dic.values():
           print(value)
    '''
    哈哈
    to be number
    19
    '''
    
    # item
    print(dic.items())  # dict_items([('name', '哈哈'), ('dream', 'to be number'), ('age', 19)])
    
    # 单个元素返回元组
    for i in dic.items():
           print(i)
    '''
    ('name', '哈哈')
    ('dream', 'to be number')
    ('age', 19)
    '''
    
    # 用元组的拆包 返回的是key,和value
    for k, v in dic.items():
        print(k + ":", v)
    '''
    name: 哈哈
    dream: to be number
    age: 19
    '''
    
    # 两个元素互换
    a = 18
    b = 12
    a, b = b, a
    print(a, b)
    
    ##### 嵌套
    
    ```python
    dic = {
        'name': '汪峰',
        'age': 48,
        'wife': [{'name': '国际章', 'age': 38},],
        'children': {'girl_first': '小苹果','girl_second': '小怡','girl_three': '顶顶'}
    }
    
    print(dic['name'])
    print(dic['wife'])
    print(dic['children']['girl_three'])
    
  • 相关阅读:
    vue 同页面不同参数
    vue的data用到this问题
    vue轮播,不是只有左右切换的,还有只切换src的
    vue页面高度填充,不出现滚动条
    WdatePicker做出onchange效果
    总结最近移动端遇到的坑(auto-size + zepto)
    react
    ES6-set && 数组剔重
    [置顶] Jquery easyui+Jsonp+asp.net+翻页 事件版
    扩展Jquery easyui的validator插件
  • 原文地址:https://www.cnblogs.com/jnsn/p/12748041.html
Copyright © 2020-2023  润新知