• 字典{}



    1. 字典

    dict 用{}来表示 键值对数据 {key:value} 唯一性

    键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键

    值 没有任何限制

    2. 增删改查

    字典的增加:

    dic[key] = value           #强制增加

    dic = {'num': '1', 'sum': '2'}
    dic['key_1'] = 'value_1'
    print(dic)
    输出:{'num': '1', 'sum': '2', 'key_1': 'value_1'}

    dic.setdefault(key,value)             #如果键在字典中存在不进行任何操作,否则就添加

    dic = {'num': '1', 'sum': '2'}
    dic.setdefault('key_2', 'value_2')
    print(dic)
    输出:{'num': '1', 'sum': '2', 'key_2': 'value_2'}

    字典的删除:

    dic.pop(key)           # 有返回值 返回的是被删除value

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    i = dic.pop('sum')
    print(dic)
    print(i)
    输出:{'num': '1', 'key_2': 'value_2'}
       2

    del dic[key]            #通过键删除对应的值

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    del dic['num']
    print(dic)
    输出:{'sum': '2', 'key_2': 'value_2'}

    dic.popitem()            #随机删除;python3.6以上默认删除最后一位

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    dic.popitem()
    print(dic)
    输出:{'num': '1', 'sum': '2'}

    dic.clear()              #清空字典

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    dic.clear()
    print(dic)
    输出:{}

    字典的修改:

    dic[key] = value          #通过键修改对应的值

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    dic['num'] = '2'
    print(dic)
    输出:{'num': '2', 'sum': '2', 'key_2': 'value_2'}

    dic.update(字典)           #通过字典更新dic

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    dic_1 = {'num': '2', '亚索': '托儿索'}
    dic.update(dic_1)
    print(dic)
    输出:{'num': '2', 'sum': '2', 'key_2': 'value_2', '亚索': '托儿索'} #dic的'num'的值被dic_1更新并更新dic没有的键值对

    字典的查询:

    dic.get(key,提示信息)      #通过字典的键查询对应的值,如果没有找到,返回提示信息,默认返回None

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.get('num', '没有对应的输入'))
    输出:1
    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.get('nm', '没有对应的输入'))
    输出:没有对应的输入

    dic[key]               #通过字典的键查询对应的值,如果没有找到,报错

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic['num'])
    输出:1
    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic['nm'])
    输出:

    Traceback (most recent call last):
    File "C:/Users/PycharmProjects/测试.py", line 27, in <module>
    print(dic['nm'])
    KeyError: 'nm'

    for 循环               #默认获取字典的键

    #第一种  循环输出所有的key
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for key in dic:
    print(key) 
    输出:k1,k2,k3
    # 方法二   循环输出所有的key
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for key in dic.keys():
        print(key)  
    输出:k1,k2,k3
    #  循环输出所有的value
    for key in dic.values():
    print(key) # v1,v2,[11,22,33]
    输出:v1,v2,[11,22,33]

      

    # 方法一   循环输出所有的key和value
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for key in dic.items():
    print(key) # ('k1', 'v1'),('k2', 'v2'),('k3', [11, 22, 33])
    输出:('k1', 'v1'),('k2', 'v2'),('k3', [11, 22, 33])
    # 方法二  循环输出所有的key和value
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for key,value in dic.items():
         print(key,value)  
    输出:# 'k1' "v1", "k2" "v2", "k3" [11,22,33]

    dic.setdefault(key,提示信息)    #通过字典的键查询对应的值,如果没有找到,返回提示信息,默认返回None

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.setdefault('num', '没有对应的输入'))
    输出:1
    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.setdefault('nm', '没有对应的输入'))
    输出:
    没有对应的输入

    3.字典的其他操作:

    dic.keys()             # 获取到所有的键存在一个高仿的列表中

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.keys())
    输出:dict_keys(['num', 'sum', 'key_2'])

    dic.values()            #获取到所有的值存在一个高仿的列表中

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.values())
    输出:dict_values(['1', '2', 'value_2'])

    dic.items()           #获取到所有的键值对已元祖的形式存在一个高仿的列表中

    dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
    print(dic.items())
    输出:dict_items([('num', '1'), ('sum', '2'), ('key_2', 'value_2')])

    解构:

    a,b = 1, 2               #输出a = 1,b = 2

    a,b = (1,2)              #输出a = 1,b = 2

    a,b = [1,2]              #输出a = 1,b = 2

    4. 字典的嵌套:

    dic = {
    'name':'熊父',
    'age':43,
    'wife':{
    'name':'熊母',
    'age':39,
    'salary':100000
    },
    'baby':[
    {'name':'熊大','age':18},
    {'name':'熊二','age':15},
    ]

    }

    dic['baby'][0]['age'] = 19

    print(dic)

  • 相关阅读:
    【POJ 2923】Relocation(状压DP+DP)
    【HDU 2955】Robberies(DP)
    【POJ 2250】Compromise(最长公共子序列LCS)
    【URAL 1917】Titan Ruins: Deadly Accuracy(DP)
    【POJ 1273】Drainage Ditches(网络流)
    HDU2896 病毒侵袭[AC自动机]
    1516. 棋盘上的车[组合数学][状态压缩]
    [HAOI2012] 容易题[母函数]
    [HAOI2012] 高速公路
    [HAOI2012]Road
  • 原文地址:https://www.cnblogs.com/Virous1887/p/9403823.html
Copyright © 2020-2023  润新知