• 字典


    字典:dic = {'name':'alex'}
    1,增
    dic['k'] = 'v'
    有键值对,则覆盖
    setdefault 有键值对,不添加
    dic.setdefault('k1','v1') 可以
    dic.setdefault('name','barry')

    2,删
    pop dic.pop('name') 有返回值,返回得是对应的值
    dic.pop('k2',None)
    dic.popitem()随机删除
    del dic['name']
    del dic
    clear 清空

    3,改
    dic['name'] = 'v'
    dic = {'name':'alex'}
    dic2 = {'name':'barry','age':18}
    dic.update(dic2)
    print(dic) {'name':'barry','age':18}
    print(dic2)  {'name':'barry','age':18}
    a,b = [1,2]
    print(a,b)  # 1,2

    a = 1
    b = 2
    a,b=b,a

    4,查
    print(dic.keys())
    print(dic.values())
    print(dic.items())  # for k,v in dic.items():
    #以上三个 都可以for循环
    dic['name']
    dic.get('name')

    字典的方法:

    序号 方法 解释
    1 clear() 清空

    2

    get()

    通过 get 获取,设置默认值,如果键名不存在,返回设置的默认值

    3

    pop()

    键值对删除,有返回,没有原来的键会报错(自行设置返回键就不会报错)

    4

    update()

    修改

    5

    copy()
      返回一个字典的浅复制
    6  items() 以列表返回可遍历的(键, 值) 元组数组 
    7 popitem()   随机删键值对
    8
    values()
    创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    9
    fromkeys()
    创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    10
    keys() 
    以列表返回一个字典所有的键
    11
    setdefault()
    和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
    Python 中的字典查询主要有两种方法,一种是用 [ ] 直接通过键名查询,另一种方法是通过 .get() 来获取键名。
    
    # 查询 
    # Issue 1, 直接通过键名获取
       print("Issue 1 : ", member["Lilei"]) 
    
    # Issue 2, 通过 get 获取
        print("Issue 2 : ", member.get("Lilei")) 
    
    # Issue 3, 如果通过 get 获取的键名不存在,返回默认值 
        print("Issue 3 : ", member.get("Mike"))
    
    # Issue 4, 可以通过 get 获取,设置默认值,如果键名不存在,返回设置的默认值
       print("Issue 4 : ", member.get("Mike", 18))
    
     >>>>> 以下为程序输出结果 
    >>>>> Issue 1 : 16
                Issue 2 : 16 
                Issue 3 : None 
                Issue 4 : 18
    
                

    赋值

    Python 字典赋值与 Python 字典查询类似,可以用 [ ] 来为指定的键赋值,如果被指定的键不存在,Python 会为你创建一个新的键值对。
    
    
    # 赋值
    # Issue 1, 直接通过方括号赋值 
    member["Lilei"] = 18 
    print("Issue 1 : ", member["Lilei"]) 
    
    # Issue 2,通过方括号为不存在的键名创建新值
     member["Tony"] = 20 
    print("Issue 2 : ", member["Tony"]) 
     
    >>>>> 以下为程序输出结果 
    >>>>> Issue 1 : 18 
                Issue 2 : 20

    在实际应用中,我们可能会尝试获取一个不存在的键名,这是,Python 会报出 KeyError 的错误,我们可以通过 try - except 
    捕获异常来处理,此外,我们也可以通过 in 来判断键名是否存在。 # 查找 # Issue 1 如果键名不存在与字典,会返回 KeyError 错误 try: mike_member = member["Mike"] except KeyError: print("Issue 1 : Can not found member named: Mike") # Issue 2 可以用 in 查找键是否存在 print("Issue 2 : Mike in member: ", "Mike" in member) print("Issue 2: Lilei in member: ", "Lilei" in member) >>>>> 以下为程序输出结果 >>>>> Issue 1 : Can not found member named: Mike Issue 2 : Mike in member: False Issue 2: Lilei in member: True
    字典的表示方法:
    
    info_dic={'name':'xxxx','age':18,'sex':'female'}
    # 常用操作:
    #
    1.存/取
    info_dic={'name':'egon','age':18,'sex':'male'}
      print(info_dic['name11111111'])#找不到则报错了
      print(info_dic.get('name',None))
      print(info_dic.get('name222222',None))#get方法找不到不报错,可以自己设定默认值
    
    #pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错
    # print(info_dic.pop('nam123123123123123123e',None))
    # print(info_dic)
    
    # print(info_dic.popitem())
    # print(info_dic)
    
    # info_dic['level']=10
    # print(info_dic)
    
    #
    #     删除
    info_dic={'name':'egon','age':18,'sex':'male'}
    # info_dic.pop()
    # info_dic.popitem()
    
    # del info_dic['name']
    
    
    #
    #     键s,值s,键值对
    info_dic={'name':'egon','age':18,'sex':'male'}
    # print(info_dic.keys())
    # print(info_dic.values())
    # print(info_dic.items())
    
    # for k in info_dic:
    #     # print(k,info_dic[k])
    #     print(k)
    
    # print('========>')
    # for k in info_dic.keys():
    #     print(k)
    
    # for val in info_dic.values():
    #     print(val)
    
    # for k,v in info_dic.items(): #k,v=('name', 'egon')
    #     print(k,v)
    
    
    
    #     长度
    # info_dic={'name':'egon','age':18,'sex':'male'}
    # print(len(info_dic))
    #
    #     循环
    #
    #     包含in
    
    # info_dic={'name':'egon','age':18,'sex':'male'}
    # print('name' in info_dic)
    # print('name' in info_dic.keys())
    # print('egon' in info_dic.values())
    # print(('name','egon') in info_dic.items())
    
    
    
    #掌握
    info_dic={'name':'egon','age':18,'sex':'male'}
    # info_dic.update({'a':1,'name':'Egon'})
    # print(info_dic)
    
    # info_dic['hobbies']=[]
    # info_dic['hobbies'].append('study')
    # info_dic['hobbies'].append('read')
    # print(info_dic)
    
    #setdefault:key不存在则设置默认值,并且放回值默认值
    #key存在则不设置默认,并且返回已经有的值
    
    # info_dic.setdefault('hobbies',[1,2])
    # print(info_dic)
    # info_dic.setdefault('hobbies',[1,2,3,4,5])
    # print(info_dic)
    
    # info_dic={'name':'haiyan','age':18,'sex':'male'}
    
    # {'name':'egon','age':18,'sex':'male','hobbies':['study']}
    # info_dic.setdefault('hobbies',[]).append('study')
    
    # {'name':'egon','age':18,'sex':'male','hobbies':['study','read']}
    # info_dic.setdefault('hobbies',[]).append('read')
    
    # {'name':'egon','age':18,'sex':'male','hobbies':['study','read','sleep']}
    # info_dic.setdefault('hobbies',[]).append('sleep')
    # l=info_dic.setdefault('hobbies',[])
    # print(l,id(l))
    # print(id(info_dic['hobbies']))
    
    # print(info_dic)
    
    
    
    #了解
    # d=info_dic.copy()
    # print(d)
    # info_dic.clear()
    # print(info_dic)
    
    
    # d=info_dic.fromkeys(('name','age','sex'),None)
    # print(d)
    # d1=dict.fromkeys(('name','age','sex'),None)
    # d2=dict.fromkeys(('name','age','sex'),('egon',18,'male'))
    # print(d1)
    # print(d2)
    
    
    
    
    # info=dict(name='haiyan',age=18,sex='male')
    # print(info)
    
    #
    # info=dict([('name','haiyan'),('age',18)])
    # print(info)

    一、字典

    1、无序(不能索引)

    2、数据关联性强

    3、键值对。唯一一个映射数据类型。

    #字典的键必须是可哈希的

    【可哈希即不可变(不可变的数据类型:字符串,数字,布尔值,元祖)并且是唯一的】

    【不可哈希的即可变(可变数据类型:列表,字典,set)】

    二、增     #1、

    1、

    dic = {'name':'lishi','age':21,'hobby':'sleep'}
    dic['weight']=60
    print(dic)
    输出:
    {'name': 'lishi', 'age': 21, 'hobby': 'sleep', 'weight': 60

    2、setdefault   有键值对不做任何改变,没有键值对才添加

    dic.setdefault('k')
    print(dic)  # {'name': 'lishi', 'age': 21, 'hobby': 'sleep', 'k': None}
    dic.setdefault('name','shi')
    print(dic)   # {'name': 'lishi', 'age': 21, 'hobby': 'sleep'}

       删 # pop:按键删,有返回,没有原来的键会报错   popitem:随机删键值对

          clear:清空                       dic:删除的键如果没有则报错

    1、pop:键值对删,有返回,没有原来的键会报错(自行设置返回键就不会报错)

    dic = {'name':'lishi','age':21,'hobby':'sleep'}
    print(dic.pop('height'))  # 报错
    print(dic.pop('weight',None))  # None
    print(dic.pop('weight','没有不报错'))  # 没有不报错

    2、popitem:随机删键值对

    
    
    dic.popitem()
    print(dic)

    3、clear:清空

    dic.clear()
    print(dic)  # {}

    4、del:删除的键如果没有则报错

    del dic['name']
    print(dic)  # {'age': 21, 'hobby': 'sleep'}

    三、改 update

    dic = {'name':'lishi','age':21,'hobby':'sleep'}
    dic['name'] = 'jassin'
    print(dic)

    update  dic.update(dic1)##将dic1添加并覆盖到dic

    dic.update(dic1)##将dic1添加并覆盖到dic
    
    dic = {'name':'lishi','age':21,'hobby':'sleep'}
    dic1 = {'name':'jassin','age':21,'hobby':'sleep','job':'student'}
    dic.update(dic1)
    print(dic) # {'name': 'jassin', 'age': 21, 'hobby': 'sleep', 'job': 'student'}
    print(dic1) #{'name': 'jassin', 'age': 21, 'hobby': 'sleep', 'job': 'student'}
    
    

    四、查  用get时。不会报错# 没有可以返回设定的返回值

    dic = {'name':'lishi','age':21,'hobby':'sleep'}
    print(dic['name'])
    print(dic['dadada'])  # 报错
    print(dic.get('name'))  # lishi
    print(dic.get('dadadd'))  # None(没有这个键返回None默认)
    print(dic.get('dadadad','没有这个键'))  # 没有这个键

    五、

    #将键以列表形式输出
    dic = {'name':'lishi','age':21,'hobby':'sleep'} print(dic.keys()) # dict_keys(['name', 'age', 'hobby'])
    #打印出列表
    for key in dic.keys():
    print(key)
    输出:键
    name
    age
    hobby

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


    输出:值

    for i in dic:
    print(i)


    输出:
    同上
    for key,value in dic.items():
    print(key,value)
    输出:
    name lishi
    age 21
    hobby sleep
     

    将alex 首字母大写

    dic1={'name':['alex',2,3,5],'job':'teacher'}
    dic1['name'][0]=dic1['name'][0].capitalize()
    print(dic1)
    
    输出:
    {'name': ['Alex', 2, 3, 5], 'job': 'teacher'}
  • 相关阅读:
    iOS 代码块
    前端模拟接口工具推荐—Apifox(mock数据)
    解决:Inferred type 'E' for type parameter 'E' is not within its bound
    vue 跨行
    MYSQL_DATE_FORMAT()_函数_详解
    docker: no matching manifest for windows/amd64 10.0.19044 in the manifest list entries.
    logback.xml引用spring的配置变量,日志配置引用配置变量
    idea将多次提交合并;idea将git多次提交合并
    windos将docker数据移到D盘
    docker在windos上启动错误
  • 原文地址:https://www.cnblogs.com/jassin-du/p/7729640.html
Copyright © 2020-2023  润新知