zoukankan      html  css  js  c++  java
  • Python学习笔记四,dict和set

    dict是字典dictionary的缩写,他存放的是键值对key/value,用花括号表示,格式为d={'micheal':99,'jack':88}

    当我们访问的时候直接print(d['micheal'])#输出相应的99;

    可以给dict复制并且会覆盖掉原来的value,但是如果key没有对应的value就会报错,

    通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:print(d.get('tomash'))#会输出none

    在dict中如果有重复的key,以前面的key为准,并自动过滤掉后面的key,比如

    d={'micheal':66,'micheal':99,'jack':88};print(d)

    d={'micheal':99,'micheal':66,'jack':88} ;print(d)

    如果要删除一个key其对应的value也会删除,pop(key)

    [cp]和list比较,dict有以下几个特点:

    1. 查找和插入的速度极快,不会随着key的增加而变慢;
    2. 需要占用大量的内存,内存浪费多。

    而list相反:

    1. 查找和插入的时间随着元素的增加而增加;
    2. 占用空间小,浪费内存很少。所以,dict是用空间来换取时间的一种方法[cp]

    set是一个无顺序的数据集合,要求以list参数传入,并且只能是一个list参数,如果有两个参数会报错,他不同于dict是没有key对应的value,有重复的元素会自动过滤掉,

    通过add(key)方法添加set元素,通过remove(key)方法删除元素;

    既然set是一个集合那么两个set集合就可以做交集,并集,

    s1=set([1,2,3]);
    s2=set([2,3,4]);
    print(s1&s2);
    print(s1|s2);

    tuple因为是不可变的所以可以作为set和dict的key;但是如果tuple里面包含了list,例如:

    a=[2,3]#list
    d=('h',('a',a))#tuple
    dict={d:'value'}#dict

    就不可以哈希化,也就是说会报错,不可以作为参数;

  • 相关阅读:
    面向对象之类属性、类方法,静态方法
    python面向对象之继承
    python之面向对象练习
    python面向对象
    CentOS7.5最小化安装之后的配置
    怎么在一台电脑上安装win7与centos7双系统
    安装Win7时删除系统保留的100M隐藏分区
    win7在安装时跳过输入用户名界面,直接开启管理员用户
    ESP8266 wifi干扰钓鱼实现
    ESP8266 wifi干扰、钓鱼实现
  • 原文地址:https://www.cnblogs.com/ooOO00/p/5351535.html
Copyright © 2011-2022 走看看