• Day5 python基础


    一,字典

           字典是Pyhthon的基础数据类型之一:字典可以存储大量的数据,关系型数据,同样他也是Python种唯一的映射类的数据类型。

    数据类型的分类:
    可变的(不可哈希)数据类型:list,dict
    不可变的(可哈希)数据类型:str,int,bool,tuple
    dic = {'name':'jin','age':18,'sex':'male'}
    键值对形式存在:键:值
    字典的键必须是不可变的数据类型。(工作中:都是由数字,或者str组成)
    字典的值是任意数据类型,对象
    优点:1.字典可以存储大量的数据,关系型数据
    2.查询速度快
    补充:py3.5之前包括3.5,字典是无序的数据类型,py3.6开始,是有序的数据类型。
    #
    dic = {'name':'taibai','age':18}
    #第一种: 有此key就是改,无此key就添加
    dic['sex'] = ''  
    dic['name'] = 'alex' 
    
    #第二种:setdefault 有此key则不做任何操作但是给我返回对应的值,无此key则添加
    dic.setdefault('sex')
    dic.setdefault('habby','讲课')
    dic.setdefault('name','alex') #不做操作,返回对应的值
    print(dic.setdefault('name','alex'))
    print(dic)
    #
    #pop 通过键去删除键值对,也有返回值,如果没有此键,并设置了第二参数,则不会报错,并且返回第二个参数
    dic.pop('name')
    print(dic.pop('name1',None))
    print(dic.pop('name1','没有该键值'))
    
    #clear清除字典内容
    dic.clear()
    print(dic)
    
    #popitem:3.5之前随即删除某个键值对,3.6以后,删除最后一组键值对,有返回值
    print(dic.popitem)
    print(dic)
    
    #del 按照键值删
    del dic['name] 按照键值删
    #内存级别上删除整个字典
    del dic
    print(dic)
    #
    #第一种:按键改,若键值对不存在则添加
    dic['age'] = 25
    print(dic)
    
    #第二种:
    #update,两个字典
    dic = {'name':'jin','age':18,'sex':'male'}
    dic2 = {'name':'alex','weight':75}
    dic.update(dic2) #将dic2种的所有键值对覆盖并添加到dic中,dic2不变
    print(dic)
    print(dic2)
    #update的另一种方式
    dic.update(a='66',b='222') #若键值对不存在则在末尾追加
    dic.update(name='taibai')
    print(dic)
    #
    dic['name']  #按键值查
    dic['name1'] #若键不存在,会报错
    #get 通过键查询键值对,如果没有此键,不会报错,默认返回none,若设置了第二参数,则返回第二个参数
    dic.get('name')
    dic.get('name1')
    dic.get('name1','没有此键')
    #字典常用方法
    #dic.keys()
    print(dic.keys(),type(dic.keys()))  #类似于列表的容器中
    ll = list(dic.keys())  #可以转化为列表
    print(ll)
    for key in dic.keys():
        print(key)
    
    #dic.values()
    print(dic.values())
    print(list(dic.values()))
    
    #dic.items()   可转化成list,可偏历
    print(dic.items())
    print(list(dic.items()))
    
    for i in dic.items():
        '''
        i = ('name','太白')
        i = ('age',18)
        '''
        print(i)
    for k,v in dic.items():
        '''
        k,v = ('name','太白')
        k,v = ('age',18)
        '''
        print(k,v)
    
    #补充:分别赋值
    a,b = 10,20
    print(a,b)
    a,b = [(1,2),(3,4)]
    print(a,b)
    #
    a = 10
    b = 20
    a,b = b,a
    print(a,b)
    #字典的嵌套
    dic = {'name_list': ['wang', 'alex', 'sun', 'taibai'],
           1: {'name': 'taibai', 'age': 18, 'sex': ''},
           (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]
           
    #1,给 name_list对应的列表追加一个值: 大人.
    dic['name_list'].append('大人')
    print(dic)
    2,将name_lsit对应的alex 变成全部大写.
    dic['name_list'][1] = dic['name_list'][1].upper()
    print(dic)
    # 3, 将1对应的字典添加一个键值对: weight : 75
    dic[1].setdefault('weight',75)
    print(dic)
    # 4,将1 对应的字典的name键对应的名字taibai 换成alex
    dic[1]['name'] = 'alex'
    print(dic)
    # 5,将 {'ip': '192.168.1.1', 'port': 3306} 次字典的port键值对删除.
    dic[(1,2)][1].popitem()
    print(dic)
    del dic[(1,2)][1]['port']
    print(dic)
    dic[(1,2)][1].pop('port')
    print(dic)
  • 相关阅读:
    live555源码研究(三)------UsageEnvironment类
    live555源码研究(二)------TaskScheduler类
    live555源码研究(一)------live555MediaServer的启动过程和基本类图
    (转)视频监控相关文章
    【流媒體】live555—VS2008 下live555编译、使用及测试
    【转】PostgreSQL IP地址访问配置
    red5研究(一):下载,工程建立、oflaDemo安装、demo测试
    SVN服务器的搭建和使用
    【转】linux下cvs配置
    【转】js正则表达式语法
  • 原文地址:https://www.cnblogs.com/lianyeah/p/9444051.html
Copyright © 2020-2023  润新知