zoukankan      html  css  js  c++  java
  • python 字典 元组 集合

    字典

    dict1 = {'name':'kobe','age':40,'list':[1,2,3,4]}

    无序的,key必须为不可变类型

    dic = {'name':'kobe','age':40,'height':196}
    
    dic['position'] = 'full back'            #有则覆盖更改,无则增加
    
    dic.setdefault('position','full back')      #有则不改,无则增加

    dic.pop('height')      #根据key 删除,返回删除的值
    
    dic.pop('height1','没有删除的键,自定义返回值')    #pop 删除时如果没有删除的键会报错,所以要自定义返回值
    
    dic.clear()          #清空字典内容
    
    del dic            #内存级别全部删除
    
    del dic['name']       #删除指定键值对
    
    dic.popitem()        #随机删除,并以元祖的形式返回删除的键值对

    dic['name'] = 'wade'    #事先存在则更改,否则添加
    
    dic1.update(dic2)      #把dic2中的键值对全部添加到dic1中,如果有相同的键则更新

    dict.setdefault(key, default=None)  #如果键不存在于字典中,将会添加键并将值设为默认值,如果键存在那么不执行,default不设置那么值就是none
     

    dic['name']          #指定键来查询,若无则报错
    
    dic.get('name1','自定义')  #若无查询key,默认返回None,也可以自定义返回值
    
    dic.keys()          #所有字典的键,以([...])形式显示,可以转换成列表,也可以for循环
      dict_keys(['name', 'age', 'height'])
      list(dic.keys())
    dic.values()         #所有字典的值,以[(...)]形式显示,可以转换成列表,也可以for循环   dict_values(['kobe', 40, 196]) dic.items()          #所有键值对以元祖形式存放在[()]中,可以转换成列表,也可以k,v 形式for 循环   dict_items([('name', 'kobe'), ('age', 40), ('height', 196)])   for k,v in dic.items:     print(k,v)

    其他方法

    len(dic)              #统计键值对二个数
    
    dic.fromkeys('asd','test')    #迭代asd来创建字典
      {'a': 'test', 's': 'test', 'd': 'test'}
    
    dic.fromkeys('asd',[])      #创建空列表为相同内存地址,任何一个列表中添加值都是一起添加
       {'a': [], 's': [], 'd': [], 'f': []}

    元祖

    tu1 = (1,2,[1,'test'],True)

    不可变数据类型(子类不可变,孙类可变)

    常见使用方法

    索引

    切片

    count

    len

    index  

    集合

    set1 = {1,2,True,(1,2,3,)}

    无序不可重复的,里面的元素必需是可哈希(不可变)的,但是其本身是可变的。

    应用

    去重

    list1 = [1,2,3,1,3,4,5,6,2]
    
    set1 = set(list1)

    关系测试

    set.add('666')
    
    set.update('asdf')    #迭代增加,asdf分为四个单个元素迭代增加到集合中

    set.pop()           #随机删除
    
    set.remove(1)            #指定元素删除
    
    set.clear()         #清空
    
    del set             #删除整个集合

    交集

    set1 = {1,2,3,4,5,6}
    
    set2 = {4,5,6,7,8,9}
    
    set11 = set1 & set2
    
    print(set11)
    
        {4, 5, 6}

    并集

    set11 = set1 | set2    #自动去重
    
    print(set11)
    
        {1, 2, 3, 4, 5, 6, 7, 8, 9}    

    差集

    set11 = set1 - set2
    
    print(set11)
        
        {1, 2, 3}

     反交集

    set11 = set1 ^ set2
    
    print(set11)
    
        {2, 3, 4, 5, 6}

    子集

    判断一个集合完全包含另一个集合

    print(set1 < set2)
      False
    或
    
    print(set1.issubset(set2))

    超子集

    print (set1 > set2)
        False
    或
    print(set1.superset(set2))
        False

    frozenset 把集合变为不可变类型
    set3 = frozenset(set1)
    
    
  • 相关阅读:
    tableView cell 设置圆角 响应链
    iOS
    git code 初次上传
    隐藏导航栏,偏移20PX
    Mysql数据库远程连接
    umeng推送, 生产环境deviceToken失效可能原因
    KeyChainWrapper
    UIVisualEffectView(高斯模糊效果)
    UVA 11582 Colossal Fibonacci Numbers! 快速幂
    HDU 2859 Phalanx DP
  • 原文地址:https://www.cnblogs.com/fanggege/p/10819011.html
Copyright © 2011-2022 走看看