从0开始学python----基础篇(list,dict,set,tuple)






if __name__ == '__main__':
    """
    python中的tuple为另一种有序列表:也称元组,但是tuple一旦初始化就不能被修改,
    所以,tuple没有list的append(),insert()的方法,其他获取元素的方法和list是一样的,
    但不能复制成另外的元素
    ---正因为tuple不可变,所以才使代码更安全,如果可能,能用tuple代替list就尽量用tuple
    ---tuple的陷阱,当你定义一个tuple时,在定义的时候,tuple的元素必须被确定下来
    """

    """
    在for循环中,结束for的API有两个
    --break,跳出当前整个for循环
    --continue,跳出当前这次循环
    """


    """
    dict相当于其他语言中的map,使用和map一样的键值对,具有极快的查找速度
    --对于查找来说,list越大,查询越慢,因为list需要从第一位开始遍历查询
    --对于dict来说,不管dict的长短,查询时间都是一样,
    --因为dict时kv对出现的,所以一个k只能对应一个v,如果多次对一个k放入v,那么后面的v值会把前面的值冲掉
    
    --因为dict时kv类型保存,所以如果k不存在,只有v就会报错,
    --要避免k不存在的错误,有两种办法
    ---1、通过in判断k是否存在
    >>>‘k值’ in dict_name
    ---2、通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的Value
    >>>dict_name('k值')  如果没有就会返回None
    >>>dict_name('k值',指定匹配的v值)  先查询,如果没有k值,就会创建这个kv值,v值时自己指定的
    ---3、删除一个k值
    >>>dict_name.pop(k值)   删除k值,对应的v值也会被删除
    
    ===dict内部存放的顺序和key放入的顺序时没有关系的
    和list比较,dict有以下几个特点:
    --1、查找和插入的速度极快,不会随着key的增加而变慢
    --2、需要占用大量的内存,内存浪费多
    而list相反:
    --1、查找和插入的时间随着元素的增加而增加
    --2、占用空间小,浪费内存很少
    ===所以说,dict时用空间来换取时间的一种方法
    
    dict可以用在需要高速查找的很多地方,在python代码中几乎无处不在,正确使用dict非常重要,
    ===需要牢记第一条就是dict的key必须是不可变对象===
    因为dict根据key来计算v的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了,这个通过key计算位置的算法称为哈希算法(Hash)
    要保证hash的正确性,作为key的对象就不能变,
    在python中字符串,整数等都是不可变的,因此可以放心的作为key,
    ===而list是可变的,就不能作为key===
    """
    
    """
    set和dict类似,也是一组key的集合,但是不存储value,由于key不能重复,所以在set中,没有重复的key
    要创建一个set,需要提供一个list作为输入集合:
    >>>s = set([1,2,3])
    >>>s
    {1,2,3}
    注意,传入参数[1,2,3]是一个list,而现实的{1,2,3}只是告诉你这个内部有1,2,3这3个元素,显示的顺序也不表达set是有序的
    重复元素在set中自动被过滤:
    >>>s = set([1,1,2,3,3])
    >>>s
    {1,2,3}
    通过add(key)方法可以添加元素到set中,可以重复添加,但是不会有效果
    通过remove(key)方法可以删除元素
    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集,并集等操作
    >>>s1 = set([1,2,3])
    >>>s2 = set([2,3,5])
    >>>s1 & s2
    {2,3}
    >>>s1 | s2
    {1,2,3,4}
    
    ---set和dict的唯一区别尽在于没有存储对应的value,但是set的原理和dict一样,所以,同样不可以放入可变对象,
    以为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素,
    
    """
    
    """
    ===可变对象===
    set是不变对象,而list是可变对象
    对于可变对象,比如list,对list进行操作,list内部的内容会变化,
    
    """
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值