zoukankan      html  css  js  c++  java
  • 字典常用操作

    '''字典的方法
    d1.get()        d1.setdefault() d1.pop()        d1.popitem()      
    d1.copy()       d1.update()     
    d1.items()      d1.keys()       d1.values()            
    d1.fromkeys()
    d1.clear()       
    '''
    
    # 创建
    d1 = {'name': 99, 3: 'z', 'l': [1, 2]}
    print(d1)
    d2 = dict(name=99, l='z', m=[2, 4])  # 这种创建字典的方式一般key为字符串,value为数字的时候使用
    print(d2)
    d3 = dict((['age', 18], [0, 99], ['l', ['3', 2]], [3, 5]))
    print(d3)
    d4 = dict([['age', 18], [0, 99], ['l', ['3', 2]], [3, 5]])   # 如左边所示,创建字典都可以这样
    print(d4)                                                    # 不过大家一般使用([( , )( , )])
    d5 = dict([('age', 18), (0, 99), ('l', ['3', 2]), (3, 5)])   # 这种方式来创建字典比较规范
    print(d5)
    d5[0] = 33   # 不会因为创建时用的是元组所以没法更改value
    print(d5)
    
    print('删除')
    # 删除
    d5.clear()
    print(d5)    # clear() 清空操作
    # del d5     # 删除操作
    # print(d5)
    # del(d4)      # 删除可以使用del(**)或者 del **
    # print(d4)
    del d1['l']      # 这两个是删除具体的键值对的,参数是key
    del(d1['name'])
    print(d1)
    d1.pop(3)      # 必须写入要删除的key值,这样才能删除对应键值对
    print(d1)
    print(d2)
    r = d2.popitem()    # popitem() 直接删除最后一个键值对,并且返回删除的键值对
    print(r)
    print(d2)
    s1, s2 = d2.popitem()
    print(s1)
    print(s2)
    
    
    print('修改:')
    # 修改
    d1[3] = '不是z'  # 直接用下标改值就行
    d1['name'] = '刚加的'   # 如果字典不存在这个key则直接添加进去
    print(d1)
    d1.update(([('sex', 12), ['age', 18]]))
    print(d1)
    print(d2)        # update( )里面参数一般使用([( , )( , )])来添加,元组里面也可以是列表嵌套,不过这个最规范
    d1.update(d2)    # 或者update( )里面可以放进别的字典作为参数
    print(d1)        # 修改方法是把没有的键值对放进去,如果有存在的key,则对比value
                     # 如果value不一样,则把新的(参数)value更新进去
    
    print('查找')
    # 查找
    n = d1.get('不是z', d1)   # get(要查找的key,没找到返回的值),如果找到了则返回对应的value
    n1 = d1.get('name')   # 如果没有找到则返回第二个参数的值,类型应该是任意类型,如左边就返回了一个字典
    print(n)
    print(n1)
    n3 = d1.setdefault('不是z', d2)  # 跟get()用法类似,只不过它在没有找到的时候不仅仅返回第二个参数
    print(n3)                       # setdefault()还把没有查找到的key添加进去了,第二个参数作为value
    print(d1)
    
    print('操作')
    # 操作
    print(d2)
    k = d2.keys()      # 取字典中的key
    v = d2.values()    # 取字典中的value
    it = d2.items()    # 取字典中的键值对
    print(k)
    print(v)
    print(it)
    
    d6 = dict.fromkeys('hello', 22)  # fromkeys(可迭代的序列,值)拆分每个可迭代的序列,每个元素作为一个key
    print(d6)                        # 第二个参数作为每一个元素的value,构成字典
    
    # 遍历
    # for k in d2:
    #     print(k)
    print(d2)
    print('打印枚举序列')
    for k, v in enumerate(d2):   # 只要涉及enumerate的时候就必然包括序号和对应的值,字典中对应的是key
        print(k)                 # 别的基本都是下标所对应的
        print(v)
    print('打印key')
    for k in d2.keys():
        print(k)
    print('打印value')
    for v in d2.values():
        print(v)
    print('打印键值对')
    for i in d2.items():
        print(i)
    print('对键值对拆包')
    for key, value in d2.items():
        print(key)
        print(value)
    
    # 1: 1 ,2: 4 3:9
    dict1 = {i: i ** 2 for i in range(10)}  # 列表推导式
    print(dict1)
    
    # 合并两个列表为字典
    list1 = ['name', 'age', 'sex']
    list2 = ['gui', 30, 'man']
    dict2 = {list1[i]: list2[i] for i in range(len(list1))}
    print(dict2)
    
    # 字典键值对互换
    d33 = {'name': 99, 3: 'z', 'l': 'L'}
    d22 = dict()
    for k, v in d33.items():
        d22[v] = k
    print(d33)
    print(d22)
    

      

                                                                       -------  知识无价,汗水有情,如需搬运请注明出处,谢谢!

  • 相关阅读:
    JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
    JWebFileTrans: 一款可以从网络上下载文件的小程序(一)
    Jcompress: 一款基于huffman编码和最小堆的压缩、解压缩小程序
    Codeigniter框架前后台部署(多目录部署)
    ubuntu-server部署php+mysql运行环境
    成熟的标志就是生活越来越专注
    西门子PLC存储器、地址区
    VS快捷键
    SQL Server 连接字符串和身份验证 学习
    C#特性
  • 原文地址:https://www.cnblogs.com/wf-skylark/p/9009750.html
Copyright © 2011-2022 走看看