zoukankan      html  css  js  c++  java
  • python字典与集合操作

    字典操作

    字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

    语法:

    info = {
        's1': "jack",
        's3': "musker",
        's2': "lili",
    }

    字典的特性:

    • dict是无序的
    • key必须是唯一的,so 天生去重

    增加

    >>> info['s4'] = "wangwu"
    >>> info
    {'s2': 'lili', 's1': 'jack', 's4': 'wangwu'}
    View Code

     修改

    >>> info['s3'] = "丽丽"
    >>> info
    {'s2': 'lili', 's3': '丽丽', 's1': 'jack', 's4': 'wangwu'}
    View Code

     删除

    >>> info.pop('s1')
    'jack'
    >>> info
    {'s2': 'lili', 's3': '丽丽', 's4': 'wangwu'}
    
    >>> del info['s3']
    >>> info
    {'s2': 'lili', 's4': 'wangwu'}
    
    >>> info.popitem()
    ('s2', 'lili')
    >>> info
    {'s4': 'wangwu'}
    View Code

    查找

    >>> 's2' in info    #标准用法
    True
    >>> info.get('s2')    #获取
    'lili'
    >>> info['s2']        #同上,但是看下面
    'lili'
    >>> info['s5']        #如果一个key不存在,就报错,get不会,不存在只返回None
    Traceback (most recent call last):
      File "<pyshell#15>", line 1, in <module>
        info['s5']
    KeyError: 's5'
    View Code

    其他操作

    #values
    >>> info.values()
    dict_values(['lili', 'jack'])
    
    #keys
    >>> info.keys()
    dict_keys(['s2', 's1'])
    
    #setdefault
    >>> info.setdefault('s6','musker')
    'musker'
    >>> info
    {'s2': 'lili', 's6': 'musker', 's1': 'jack'}
    >>> info.setdefault('s2','wangwu')
    'lili'
    >>> info
    {'s2': 'lili', 's6': 'musker', 's1': 'jack'}
    
    
    #update 
    >>> info
    {'s2': 'lili', 's6': 'musker', 's1': 'jack'}
    >>> b = {1:'a', 2:'b'}
    >>> info.update(b)
    >>> info
    {'s2': 'lili', 1: 'a', 2: 'b', 's6': 'musker', 's1': 'jack'}
    
    #items
    >>> info.items()
    dict_items([('s2', 'lili'), (1, 'a'), (2, 'b'), ('s6', 'musker'), ('s1', 'jack')])
    
    #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
    >>> dict.fromkeys([1,2,3],'testd')
    {1: 'testd', 2: 'testd', 3: 'testd'}
    View Code

    循环dict

    #方法1
    for key in info:
        print(key,info[key])
    
    #方法2
    for k,v in info.items(): #会先把dict转成list,数据里大时莫用
        print(k,v)
    View Code

    集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    常用操作

    s = set([3,5,9,10])      #创建一个数值集合  
      
    t = set("Hello")         #创建一个唯一字符的集合  
    
    
    a = t | s          # t 和 s的并集  
      
    b = t & s          # t 和 s的交集  
      
    c = t – s          # 求差集(项在t中,但不在s中)  
      
    d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
      
       
      
    基本操作:  
      
    t.add('x')            # 添加一项  
      
    s.update([10,37,42])  # 在s中添加多项  
      
       
      
    使用remove()可以删除一项:  
      
    t.remove('H')  
      
      
    len(s)  
    set 的长度  
      
    x in s  
    测试 x 是否是 s 的成员  
      
    x not in s  
    测试 x 是否不是 s 的成员  
      
    s.issubset(t)  
    s <= t  
    测试是否 s 中的每一个元素都在 t 中  
      
    s.issuperset(t)  
    s >= t  
    测试是否 t 中的每一个元素都在 s 中  
      
    s.union(t)  
    s | t  
    返回一个新的 set 包含 s 和 t 中的每一个元素  
      
    s.intersection(t)  
    s & t  
    返回一个新的 set 包含 s 和 t 中的公共元素  
      
    s.difference(t)  
    s - t  
    返回一个新的 set 包含 s 中有但是 t 中没有的元素  
      
    s.symmetric_difference(t)  
    s ^ t  
    返回一个新的 set 包含 s 和 t 中不重复的元素  
      
    s.copy()  
    返回 set “s”的一个浅复制
    View Code
  • 相关阅读:
    HEC-ResSim原文档
    水文模型大全
    用word发布博客到博客园
    给你的浏览器标题栏加上小图标
    系统性能调优必知必会学习
    系统性能调优必知必会学习
    容器化学习
    Redisson学习
    mysql回顾
    事物、源码学习,spring-tx
  • 原文地址:https://www.cnblogs.com/zhichaoma/p/7648543.html
Copyright © 2011-2022 走看看