• python——使用dict和set


     

    一.dict

     

    1.dict的全称为dictionary(字典),包含key-value对(键-值对),具有极快的查找速度

    定义一个姓名和年龄对应的dict:

    1 #定义一个姓名和年龄的字典
    2 >>> d={'Rachel':18,'Monica':20,'Joey':17,'Ross':25}

    2.可以通过key直接找到对应的value

    1 >>> d={'Rachel':18,'Monica':20,'Joey':17,'Ross':25}
    2 >>> d['Ross']
    3 25

    3.key与value是一一对应的,一个key只能有一个value值,若给一个key赋多次值,只保留最后一个

    1 >>> d['Ross']=30
    2 >>> d['Ross']=31
    3 >>> d['Ross']
    4 31

    4.如果字典里面不存在某一key就会报错

    1 >>> d['Chandlar']
    2 Traceback (most recent call last):
    3   File "<stdin>", line 1, in <module>
    4 KeyError: 'Chandlar'

    可以通过两种方法判断key是否存在:

    第一种是通过 in 判断,若存在返回True,否则返回False

    1 >>> 'Monica' in d
    2 True
    3 >>> 'Chandlar' in d
    4 False

    第二种是通过dict提供的 get()方法判断,若存在则返回对应的value,不存在返回None(注意:python交互环境中不显示结果)

    1 >>> d.get('Monica')
    2 20
    3 >>> d.get('Chandlar')
    4 >>>

    5.删除一个键-值对,用 pop(key)方法,key对应的value也会删除

    1 >>> d.pop('Monica')
    2 20
    3 >>> d
    4 {'Rachel': 18, 'Joey': 17, 'Ross': 31}

    6.和list比较,dict有以下几个特点:

    ①查找和插入的速度极快,不会随着key的增加而变慢;

    ②需要占用大量的内存,内存浪费多。

    所以,dict是一种用空间换取时间的方法。

    需要注意的是,dict的key必须是不可变对象(可以是字符串、整数等类型,但不可以是一个list

    二. set

     

    1.set和dict类似,set也是一组key的集合,但是不存储value

    要创建一个set,需要提供一个list作为输入集合:

    1 >>> s=set([1,2,3])
    2 >>> s
    3 {1, 2, 3}

    2.在set中没有重复的key,重复的key会被自动过滤

    1 >>> s=set([1,2,3,3])
    2 >>> s
    3 {1, 2, 3}

    3.用 add(key)方法向set里面添加key,重复添加不会有效果

    1 >>> s.add(4)
    2 >>> s
    3 {1, 2, 3, 4}
    4 >>> s.add(3)
    5 >>> s
    6 {1, 2, 3, 4}

    4.使用 remove(key)方法删除key

    1 >>> s.remove(1)
    2 >>> s
    3 {2, 3, 4}

    5.set可以看做数学意义上无序和无重复元素的集合,两个set可以进行数学意义上交集、并集等操作

    1 >>> a=set([1,2,3])
    2 >>> b=set([2,3,4])
    3 >>> a&b
    4 {2, 3}
    5 >>> a|b
    6 {1, 2, 3, 4}
  • 相关阅读:
    linux 分析 目标文件 的命令
    bss,data,text,rodata,堆,栈,常量段
    Linux进程地址空间详解
    机器周期,指令周期,时钟周期,节拍与晶振
    银行家算法——C语言(11计科1班-孙鹏启——修正)
    bash —— bind ( 一个功能强大的组合键! Alt + . )
    【5002】排版问题
    【?】【7007】栈、模拟
    【u235】背单词
    【t076】竞赛排名
  • 原文地址:https://www.cnblogs.com/canneddream/p/14158072.html
Copyright © 2020-2023  润新知