zoukankan      html  css  js  c++  java
  • 0503Python基础-字典增删改查

    1,昨日内容回顾

        列表

            增

                append 追加到最后

                insert 插入 (索引,内容)

                extend 迭代着追加

            删

                pop 按照索引删除,返回删除的元素

                remove 按照元素删除。

                clear 清空列表

                del

                    在内存级别删除 del li

                    按照索引删除 del li[1]

                    切片删除可加步长 del li[1::2]

            改

                按照索引改 li[0] = 新内容

                按照切片去改 li[1:3] = '老男孩'

                按照切片去改 li[1:3] = [111, 222, [3,4,5]]

            查

                索引,切片,for循环。

        列表的嵌套

        元组

            只读列表,只能查询,不能增删改。

                儿子不能改,孙子可能改。

        range

            当成:自定制的数字范围列表

            与for循环结合,与len for循环结合。

            range(10)

            range(0,10,2)

            range(10,1,-1)

            补充:

            Python2x: range 数字列表

                      xrange 可迭代对象。

            python3x: range 可迭代对象。

    3,字典

        基础数据类型之一,{} 以键值对的形式存储数据。

        dic = {'name':'Laonanhai',

                'age':45,

                'name_list':['反面教材','俊俊',....]

                }

        以key:value形式,映射,存储的大量的关系型数据。

        数据类型的分类:

            可变(不可哈希hash):list,dict,set, list = [11,222,333]

            不可变(可哈希hash):str,tuple,int,bool   name = 'alex'

            容器类:

                容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]]

                非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]'

        字典的key必须是不可变的数据类型,是唯一的,

            hash算法:

                字典的键通过hash表转换成数字,采用二分查找查询数字。

        字典的value可以是任意数据类型。

        字典的查询速度非常快,存储的大量的关系型数据。

        字典在python3.5包含3.5之前都是无序,但3.6之后是有序的。

    4,字典的增删改查及其他操作

           键唯一,键必须是不可变得可哈希的数据类型

           dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}

           增
    dic['sex'] = 'LaddyBoy'
    dic['name'] = 'Alex'  有则覆盖,没有就添加
    dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。
    dic.setdefault('name', 'alex')
    print(dic)


    print(dic.pop('age'))  # 有返回值,返回的是键对应的值
    print(dic.pop('age1', '没有此键...'))
    print(dic)

    dic.clear() 清空字典
    print(dic)

    print(dic.popitem())  # 随机删除,有返回值,返回值为元组,里面是删除的键值对。
    print(dic)


    del
    1,删除整个字典
    del dic
    2,按照键删除键值对
    del dic['name']
    print(dic)


    1, dic['name'] = 'Alex'  有则覆盖,没有就添加
    update 两个字典的更新
    dic = {"name": "jin", "age": 18, "sex": "male"}
    dic2 = {"name": "alex", "weight": 75}
    dic2.update(dic)  # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变
    print(dic)  # {'name': 'jin', 'age': 18, 'sex': 'male'}
    print(dic2)  # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}



    1,dic['name']
    print(dic['name1'])

    2,dic.get('name')
    print(dic.get('name'))
    print(dic.get('name1'))
    print(dic.get('name1', 'sb没有此键'))

    for循环查询
    dic.keys(), dic.values(), dic.items()  #类似于list但不是list的类型。
    print(dic.keys(),type(dic.keys()))
    for key in dic.keys():
        print(key)
    l_key = list(dic.keys())
    print(l_key)

    for value in dic.values():
        print(value)

    l_value = list(dic.values())
    print(l_value)
    print(dic.items())

    分别赋值概念
    a, b = 1, 2
    a, b = ('alex', '34')
    a, b = ['alex', '34']
    有 如下 a = 1 b = 3,用一行代码将a b值互换。
    a = 1
    b = 3
    a, b = b, a
    print(dic.items())
    for i in [22,33,44]:
        print(i)
    for i in [(11,22),(33,44),(55,66)]:
        print(i)
    k,v = ('name', '老男孩')
    for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
        print(k,v)

    5,字典的嵌套


    dic = {
        'name_list': ['碗蓉', '俊俊', '爽妹'],
        'status': None,
        'personal_msg': {
            'name': '反面教材',
            'age': 25,
            'hobby_list': ['抽烟', '喝酒', '烫头'],
        }
    }

    1,给dic添加一个键值对,学校:老男孩
    dic['学校'] = '老男孩'
    print(dic)
    2,将status对应的值改成True
    dic['status'] = True
    print(dic)
    3,给name_list对应的列表追加一个元素:平平
    print(dic['name_list'])
    dic['name_list'].append('平平')
    print(dic)
    4,给personal_msg对应的字典添加一个键值对sex:男
    dic2 = dic['personal_msg']
    dic2['sex'] = '男'
    print(dic)
    dic['personal_msg']['sex'] = '男'
    print(dic)
    5,将hobby_list 对应的列表中的烫头改成唱歌。
    dic['personal_msg']['hobby_list'][-1] = '唱歌'
    print(dic)

  • 相关阅读:
    Python多进程编程
    Cython学习
    cProfile——Python性能分析工具
    Python垃圾回收机制:gc模块
    新纪元
    类模版的static成员
    我的2015plan
    Linux之sed
    getenv, _wgetenv
    vs2010下如何调试带输入参数的程序
  • 原文地址:https://www.cnblogs.com/dzh0394/p/8985512.html
Copyright © 2011-2022 走看看