• 6. 初识Python之dict和set


    dict

    dict是Python的字典(dictionary)
    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }
    

    key是唯一的,重复的键值对会替换前者,值不需要唯一

    例如下面这个例子:

    d = {'key1': 'value1', 'key2': 'value2', 'key2': 'value3'}
    print(d)
    

    猜猜会输出什么呢??

    既然前面说了后面的会替代前面的,那么肯定会输出

    {'key1': 'value1', 'key2': 'value3'}
    

    说完dict的特点,我们来说说该怎么获得里面的值呢?

    d = {'key1': 'value1', 'key2': 'value2', 'key2': 'value3'}
    print(d['key1'])
    

    这样就取出来了key1对应的值 value1

    此外还有一种办法,就是字典的get()方法

    d = {'key1': 'value1', 'key2': 'value2', 'key2': 'value3'}
    print (d.get('key1'))
    

    那么你可能会问了, 如果我这个key在字典里面不存在怎么办呢?

    如果你在新华字典里面查不到一个词怎么办呢? 那你肯定会把字典扔一边里去骂娘了.

    Python也是,只不过他不会骂娘,他会出现一个异常叫做keyError,你可以实际的操作下.

    但是你又是一个傲娇的人,你觉得一个keyerror觉得自己很没有水平,没关系. pyhton满足你的虚荣心

    d = {'key1': 'value1', 'key2': 'value2', 'key2': 'value3'}
    print (d.get('key3', '猜猜我有没有?'))
    

    字典的key在内部存储的顺序是无序的,所以print(d)的值和入参的顺序可能是不一致

    注意

    dict的特点:

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

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

    list的特点:

    • 查找和插入的时间随着元素的增加而增加

    • 占用空间小,浪费内存很少

    那么都有什么能作为key呢?

    由于字典中的key是不可变的

    所以字符串和整数等都一般会成为我们作为key的首选

    而对象则是万万不能作为一个key的

    一般的话字符串作为key的情况多

    上面我们介绍了获取字典中的元组,既然叫字典了,那么我们肯定会有修订

    修改字典的元素
    d = {'key1': 'value1', 'key2': 'value3'}
    d['key1'] = 'value111'
    print (d.get('key1', '猜猜我有没有?'))
    
    增加字典的元素
    d = {'key1': 'value1', 'key2': 'value3'}
    d['key3'] = 'value3'
    print (d.get('key3', '猜猜我有没有?'))
    
    删除字典中的元素
    d = {'key1': 'value1', 'key2': 'value3'}
    
    del d['key1']
    # 这里会输出猜猜我有没有?
    print (d.get('key1', '猜猜我有没有?'))
    
    d['key1'] = 'value111'
    # 这里会输出 value111
    print (d.get('key1', '猜猜我有没有?'))
    

    还有一些方法在这里就不一一列举了

    序号 函数 描述
    1 dict.clear() 删除字典内所有元素
    2 dict.copy() 返回一个字典的浅复制
    3 dict.has_key(key) 键在字典dict里
    4 dict.items() 以列表返回可遍历的元组数组
    5 dict.keys() 以列表返回一个字典所有的键
    6 dict.update(dict2) 把字典dict2更新到dict里
    7 dict.values() 以列表返回字典中的所有值

    set

    set和list类似,但是特性和字典类似,set和dict的底层实现是相似的

    set中是去重无序的,即在set中是没有重复的元素的,参数内部顺序和进出入顺序不一定是一致的

    有一点需要注意:

    s = ('set')
    print(s)
    
    # 第二种创建方式
    s = (['s','e','t'])
    print(s)
    

    这样就创建出了一个set集合

    增加元素
    s = ('set')
    print(s)
    
    # 第二种创建方式
    s1 = (['s','e','t'])
    print(s1)
    # 这个set1不会象上面一样被拆分,这就是一个值
    s.add('set1')
    print(s)
    
    删除元素
    s.remove('s')
    

    同时set还可以做交集和并集

    s = ('set')
    print(s)
    
    # 第二种创建方式
    s1 = (['s','e','t', '1'])
    print(s1)
    
    print(s1 & s)
    
    print(s1 | s)
    

    思考一下都会输出什么?

    dict和set就先到这里

  • 相关阅读:
    linux上mysql安装详细教程
    druid部署
    druid.io本地集群搭建 / 扩展集群搭建
    CentOS7.1.x+Druid 0.12 集群配置
    Python小项目四:实现简单的web服务器
    hadoop学习---运行第一个hadoop实例
    Hadoop集群完全分布式坏境搭建
    mysql备份与恢复
    mysql登录的三种方式
    nginx代理,负载均衡
  • 原文地址:https://www.cnblogs.com/hcf-fcl/p/11199581.html
Copyright © 2020-2023  润新知