• 第二个月课堂004讲解python之实战之字典(004)_高级讲师肖sir


    # python中的字典:dict类型
    # 键值对组成
    # 键是唯一,值可以不唯一
    # {} 英文的大括号 也叫花括号
    # # 字典中键值是一个整体,如有多个键值对要用英文的,逗号隔开
    # # 整数类型不需要加单双引号外,其它都需要加单双引号
    # # 键和值用英文的:冒号  比如:name:zhangsan

    (1)定义一个字典

    d ={'name':'zhangsan','age':18} #定义一个字典

    print(type(d)) #<class 'dict'>字典的类型
    print(d) #打印结果为:{'name': 'zhangsan', 'age': 18}

    (2)
    列表转换成字典步骤 重点:(使用dict 就可以转换)
    第一步:定义一个列表
    l =[('name','zhangsan'),('age',18)]
    第二步:使用dict 将列表转换成字典
    di_ct=dict(l)#将列表转换成为字典
    第三步:查看字典的类型
    print(type(di_ct)) #<class 'dict'>字典类型
    第四步:在打印字典
    print(di_ct) #{'name': 'zhangsan', 'age': 18}
    备注:字典转换是键与值一组,所以是2个值一组

    (3)字典中添加键值对: 格式:变量名[键] =值
    注意:字典中添加新的的键和值
    d ={'name':'zhangsan','age':18}#定义一个字典
    d['scroe']=100
    print(d) #{'name': 'zhangsan', 'age': 18, 'scroe': 100}

    (4)字典中有键,替换值(键不变,值变)
    c= {'name': 'zhangsan', 'age': '18'}
    c['name'] = 200
    print(c) # 打印结果:{'name': 200, 'age': '18'}
    小结:《1》、给字典中增加一个键值对:如原字典内没有相同的键值对则新增一个
    《2》、如原有字典中有相同的键,则会将对于的键的值进行重新赋值''
    3、通过keys取出对应的键
    d ={'name':'lis','age':18} #定义一个字典
    print(d.keys()) #(['name', 'age'])
    # 通过keys来取出对应的键
    print(type(d.keys())) #<class 'dict_keys'>
    

    4、通过values 取出字典中对应的值
    v={'name':'lis','age':18} #定义一个字典
    print(v.values()) #['lis', 18]
    

     5、通过键来获取对应键的值

    k ={'name':'lisi','age':18} #定义一个字典
    print(k['name']) #lisi
    

     6、6.1添加设置默认键值setdefault 

    mr ={'name':'lis','age':18} #定义一个字典6.1默认值不存在的情况下,直接添加键值mr.setdefault('scroe',100)

    print(mr) #{'name': 'lis', 'age': 18, 'scroe': 100}

    6.2 已有键值,在使用默认键值不会进行修改,或者增加 mr.setdefault('name','zhangsan') print(mr) #{'name': 'lis', 'age': 18, 'scroe': 100}
    备注:已经存在的值的优先级>默认值
    6.3 直接修改 值,显示最新修改值 (修改默认值优先级小于直接添加的字典值)
    mr['name']='wangwu' print(mr) #{'name': 'wangwu', 'age': 18, 'scroe': 100}


    7、删除键:(删除键,值也没有了)

    dellkey={'name':'zhangsan','age':18}
    del dellkey[ 'name']
    print (dellkey)
    注意点:键和值都要用引号,除数值外

     8、使用for 循环获取key

    d ={'name':'zhangsan','age':18}
    for k in d:
        print(k)  #拿到的是:键 值不拿
    

    9、使用for循环获取key,values

    s ={'name':'zhangsan','age':18}
    for k in s:
        print(k,s[k])
    

     10、# 通过items()方法来获取对应键值对 

    t ={'name':'zhangsan','age':18}
    for k,v in t.items():
        print(k,v)
    

     11、'通过pop函数删除指定的键,打印返回对应键的值'''

    方法一:pop删除指定的键,返回对应的值

    d2 ={'name':'zhangsan','age':18}
    print(d2.pop('name')) #zhangsan
    

     方法二:popitem在字典删除键值对,一般默认在末尾

    d ={'name':'zhangsan','age':18,'':100}
    print(d.popitem()) #('', 100)
    备注:打印结果:字典中最后一个键值

     12、clear  来清空当前字典中的键值对,返回一个空字典

    d3 ={'name':'zhangsan','age':18}
    d3.clear() #通过clear()来清空当前字典中的键值对
    print(d3) #  打印结果:{}清空后返回就是一个空字典

    13、get   ,get通过键获取对应的值

    d ={'name':'zhangsan','age':18,'':100}
    print(d) #{'name': 'zhangsan', 'age': 18, '': 100}
    print(d.get('name')) #zhangsan #通过键获取值
    print(d.get('')) #100
    print(d.get('age')) #18
    print(d.get('score')) #None  #通过不存在的键,返回的是none
    print(d.get(100)) #None      #通过值去获取,返回时的none
    

     

     14、快速生成一个新字典的方法fromkeys

    方法一:

    第一种情况:生成一个新的字典的键

    print ({ }.fromkeys(['name','age']))  #{'name': None, 'age': None}

     第二种情况:生成一个字典的键和值

    print({}.fromkeys(['name','age'],'a')) #{'name': 'a', 'age': 'a'}

     方法三:快速生成字典,并赋同样的值

    d={'name':'zhang','age':18}
    print(d.fromkeys(['name','age'],'c')) #{'name': 'c', 'age': 'c'}
    

     15、update  方法 将多个字典合并

    d1 ={'name':'zhangsan','age':18} #定义一个字典
    d2={'scroe':100} #定义一个字典
    d1.update(d2) #通过update方法将d1字典和d2字典进行合并
    print(d1) #{'name': 'zhangsan', 'age': 18, 'scroe': 100}
    备注:合并字典以后,在d1表中

     16、copy 复制字典

    s={"name":"zhangsan","age":15}
    c= s.copy()
    print (c)
    print (s)
    

     17、del删除字典

    #场景一:
    d={"name":"lixi","age":18}
    del d
    #场景二:删除键
    d={"name":"lixi","age":18}
    print(d)
    # del (d["name"])
    # print(d)
    

      

     备注:has_key  在python2中有,在python3中不存在

  • 相关阅读:
    快速提交一个项目到github或gitee上
    微信web开发问题记录
    解决 VUE项目过大nodejs内存溢出问题
    vue使用动态渲染v-model输入框无法输入内容
    webstorm 支持vue element-ui 语法高亮属性自动补全
    spring websocket报错:No matching message handler methods.
    Failed to start bean 'stompBrokerRelayMessageHandler'; nested exception is java.lang.NoClassDefFoundError: reactor/io/codec/Codec
    远程调用appium server
    appium 特殊操作
    mac下搭建appium
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13976771.html
Copyright © 2020-2023  润新知