zoukankan      html  css  js  c++  java
  • 字典类型内置方法

    字典类型内置方法

    一、字典类型内置方法(dict)

    1.用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

    2.定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

    dic = {'a': 1, 'b': 2}  # dic = dict({'a':1,'b':2})
    
    print(f"dic: {dic}")
    
    dic: {'a': 1, 'b': 2}
    
    dic = dict(a=1, b=2, c=3)
    
    print(f"dic: {dic}")
    
    dic: {'a': 1, 'b': 2, 'c': 3}
    
    dic = {1: 'a', 0: 'b'}
    
    print(f"dic[0]: {dic[0]}")  # 无法区分dic是列表,还是字典,并且key不再具有描述信息
    
    dic[0]: b
    
    dic = {[1,2]: 'a', 0: 'b'}  # 报错
    

    3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

    1.1 优先掌握(*****)

    • 按key存取值:可存可取
    • 长度len
    • 成员运算in和not in
    • 删除del
    • 键keys()、值values()、键值对items()
    • 循环

    1.按key存取值:可存可取

    # dic之按key存取值
    dic = {'a': 1, 'b': 2}
    
    print(f"first dic['a']: {dic['a']}")
    
    dic['a'] = 3
    
    print(f"second dic['a']: {dic['a']}")
    
    first dic['a']: 1
    second dic['a']: 3
    

    2.长度len

    # dic之长度len
    dic = {'a': 1, 'b': 2}
    
    print(f"len(dic): {len(dic)}")
    
    len(dic): 2
    

    3.成员运算in和not in

    # dic之成员运算in和not in
    dic = {'a': 1, 'b': 2}
    
    print(f"'a' in dic: {'a' in dic}")
    print(f"1 in dic: {1 in dic}")
    
    'a' in dic: True
    1 in dic: False
    

    4.删除

    # dic之删除del
    dic = {'a': 1, 'b': 2}
    del dic['a']
    
    print(f"dic.get('a'): {dic.get('a')}")
    
    dic.get('a'): None
    
    # dic之删除pop()
    dic = {'a': 1, 'b': 2}
    dic.pop('a')  # 指定元素删除
    
    print(f"dic.pop('b'): {dic.pop('b')}")
    print(f"dic.get('a'): {dic.get('a')}")
    
    dic.pop('b'): 2
    dic.get('a'): None
    
    # dic之删除popitem()
    dic = {'a': 1, 'b': 2}
    
    print(f"dic.popitem(): {dic.popitem()}")  # popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
    
    dic.popitem(): ('b', 2)
    

    5.键keys()、值values()、键值对items()

    # dic之键keys()、值values()、键值对items(),python2中取出的是列表(鸡蛋);python3中取出的是元组(鸡)
    dic = {'a': 1, 'b': 2}
    
    print(f"dic.keys(): {dic.keys()}")
    print(f"dic.values(): {dic.values()}")
    print(f"dic.items(): {dic.items()}")
    
    dic.keys(): dict_keys(['a', 'b'])
    dic.values(): dict_values([1, 2])
    dic.items(): dict_items([('a', 1), ('b', 2)])
    

    6.循环

    # dic之循环
    # dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的,但是python2中的字典是无序
    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    for k, v in dic.items():  # items可以换成keys()、values()
        print(k, v)
    
    a 1
    b 2
    c 3
    d 4
    

    1.2 需要掌握(****)

    • get
    • update
    • fromkeys
    • setdefault

    1.get()

    # dic之get()
    dic = {'a': 1, 'b': 2}
    
    print(f"dic.get('a'): {dic.get('a')}")
    print(f"dic.get('c'): {dic.get('c')}")
    
    dic.get('a'): 1
    dic.get('c'): None
    

    2.update()

    # dic之update()
    dic1 = {'a': 1, 'b': 2}
    dic2 = {'c': 3}
    dic1.update(dic2)
    
    print(f"dic1: {dic1}")
    
    dic1: {'a': 1, 'b': 2, 'c': 3}
    

    3.fromkeys()

    # dic之fromkeys()
    dic = dict.fromkeys(['name', 'age', 'sex'], None)
    
    print(f"dic: {dic}")
    
    dic: {'name': None, 'age': None, 'sex': None}
    

    4.setdefault()

    # dic之setdefault(),有指定key不会改变值;无指定key则改变值
    dic = {'a': 1, 'b': 2}
    
    print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")
    print(f"dic: {dic}")
    print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")
    print(f"dic: {dic}")
    
    dic.setdefault('a'): 1
    dic: {'a': 1, 'b': 2}
    dic.setdefault('c'): 3
    dic: {'a': 1, 'b': 2, 'c': 3}
    

    二、练习

    统计s='hello tank tank say hello sb sb'中每个单词的个数
    结果如:{'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}

    s='hello tank tank say hello sb sb'
    
    l=s.split()
    
    dic={}
    for item in l:
        if item in dic:
            dic[item]+=1
        else:
            dic[item]=1
    print(dic)
    
    {'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}
    

    4.存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型
    5.有序or无序:无序

    dic = {'a': 1, 'b': 2}
    print(f'first:{id(name)}')
    dic['a'] = 3
    print(f'second:{id(name)}')
    
    first:4356627632
    second:4356627632
    

    6.可变or不可变:可变数据类型

  • 相关阅读:
    收音机 德生
    Ubuntu14.04+安卓系统4.3+JDK6编译源码
    springboot2.0+redis实现消息队列+redis做缓存+mysql
    万能命令
    分享个强大的抓包工具
    Vue之Mustache语法
    Vue之vbind基本使用
    Centos7.3环境下安装最新版的Python3.8.4
    Vue之vonce、vhtml、vtext、vpre、vcloak的基本使用
    Centos7.3安装最新版本git
  • 原文地址:https://www.cnblogs.com/Dr-wei/p/11861995.html
Copyright © 2011-2022 走看看