• Python基础之字典操作


    字典

    字典的优点:

    dict key 必须是不可变数据类型,可哈希,
    value:任意数据类型。
    dict 优点:二分查找去查询
    存储大量的关系型数据
    特点:无序的(指的是不可人为的去改变顺序)

    数据类型划分为:可变数据类型和不可变数据类型

    可变数据类型(不可哈希的):

    list、dict、set

    不可变数据类型(可哈希的):

    int、str、tuple、bool

    定义一个字典
    dict1 = {'age': 25, 'sex': '男', 'hight': 171}
    
    字典的增
    dict1['eye'] = 'blue'
    {'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue'}
    
    # setdefault 函数
    字典中有这个键,就什么都不做
    dict1.setdefault('eye', 'green') 
    {'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue'}
    
    字典中没有这个键,就增加
    dict1.setdefault('city', 'hangzhou') 
    {'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue', 'city': 'hangzhou'}
    
    不指定值,则默认为None
    dict1.setdefault('city')
    {'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue', 'city': None}
    

    字典的删除

    最原始的方法,但是如果删除的键不存在则会报错导致程序崩溃 无返回值
    del dict1['age']
    
    # 保险的方法 pop函数
    如果有键则删除,没有就返回指定的None,返回值是指定键的值
    dict1.pop('age', None)
    
    清空字典
    dict1.clear()
    
    随机删除一个键 有返回值,以元组形式的键值对
    dict1.popitem()
    
    

    字典的修改

    直接修改
    dict1['age'] = 35
    
    update函数 更新合并
    dic = {'names': 'jm001', 'sex': 'woman'}
    dict2 = {'hight': 172}
    
    dic2更新合并dic
    dict2.update(dic)
    {'hight': 172, 'names': 'jm001', 'sex': 'woman'}
    

    字典的查

    dict1 = {'age': 25, 'sex': '男', 'hight': 171}
    dict1.keys()
    dict_keys(['age', 'sex', 'hight'])
    
    dict1.values()
    dict_values([25, '男', 171])
    
    dict1.items()
    dict_items([('age', 25), ('sex', '男'), ('hight', 171)])
    
    位置的交换
    a = 1
    b = 2
    b, a = a, b
    2 1
    a, b = [1, 2]
    1 2
    a, b = [2,3], [5,6]
    [2, 3] [5, 6]
    
    
    原始的查找,如果找不到会报错
    dict1['age']
    
    get函数查找,找不到就默认返回None,当然也可以指定
    dict1.get('age', None)
    
    

    字典的混合使用

    dict_json = {
        'city': ['北京', '上海', '杭州'],
        'data': {
            'name': 'jm001',
            'sex': 'xiaoxinggan',
            'video_list': ['s', 'a', 'd']
        },
        'age': 25
    }
    
    
    向city字段里面追加 深圳
    dict_json['city'].append('深圳')
    print(dict_json)
    {'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'xiaoxinggan', 'video_list': ['s', 'a', 'd']}, 'age': 25}
    
    把data里的sex 值全部改为大写
    dict_json['data']['sex'] = dict_json['data']['sex'].upper()
    print(dict_json)
    {'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'XIAOXINGGAN', 'video_list': ['s', 'a', 'd']}, 'age': 25}
    
    向s里面添加键值对 hobby:eat
    dict2 = {'hobby': 'eat'}
    dict_json['data']['video_list'].append(dict2)
    print(dict_json)
    {'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'xiaoxinggan', 'video_list': ['s', 'a', 'd', {'hobby': 'eat'}]}, 'age': 25}
    

    需求

    随便输入一个字符串中包含数字和字母的,找出相连整数出现的次数

    info = input('>>>')
    
    for i in info:
        if i.isalpha():
            info = info.replace(i, ' ')
    res = info.split()
    l = len(res)
    print(l)
    

    这里需要注意一下,for循环一个不可变类型,其实是一开始就将整个循环次数循序的机制读取到内存中,不管这个类型在你操作后怎么变化,这些机制是从始至终都要执行完毕的

  • 相关阅读:
    软件测试分类与分级
    项目风险管理(Project Risk Management)
    软件测试基础
    【1】开关电源纹波的抑制
    EMC小知识
    【02】STM32:跑马灯配置
    【01】STM32:GPIO管脚模式设置
    【07】Java入门07:继承与抽象类
    【06】Java入门06:IO流-基础
    【05】Java入门05:Java集合
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/9862934.html
Copyright © 2020-2023  润新知