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

    一、元组(tuple):

    元组,跟列表很相识,最主要的区别就是它里面的元素不允许被修改。元组也是有序的,有切片操作。

    #1、索引:
    
    >>> t1=('a','b','c')
    >>> print(t1[1])
    b
    
    #2、切片:
    
    >>> t1=('a','b','c')
    >>> print(t1[::-1])
    ('c', 'b', 'a')
    
    #3、注意元组所谓的不能修改只是针对一级元素,如果一级元素是一个可变类型:即列表,字典,集合那么这个可变类型是可以更改的。
    
    >>> t1=('a','b',[1,2,3])
    >>> t1[2][0]=2
    >>> t1
    ('a', 'b', [2, 2, 3]) 

    二、字典(dictionary)

     

    dict.fromkeys()
    
    get()
    
    pop(),popitem
    
    setdefault()
    
    update()
    
    items() values()keys()
    #1、字典的生成:可以直接通过键值对赋值。也可以根据序列,创建字典,并指定统一的值。
    
    >>> v = dict.fromkeys(["k1",123,"999"],123)
    
    >>> v
    {'k1': 123, 123: 123, '999': 123}
    >>>
    
    #2、可以通过Key 获取值,Key不存在时,可以指定默认值
    
    >>> dic = {"k1":'v1',"k2":'v2'}
    
    >>> print(dic["k1"])
    v1
    
    >>> print(dic.get("k1"))
    
    v1
    >>> print(dic.get("k43",100))
    100
    
     #3,可以通过pop方法获得字典的元素:
    
    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    若
    v = dic.pop('k1',90)
    print(dic,v)     #{'k2': 'v2'} v1
    若
    v = dic.pop('k3',90)
    print(dic,v)    #{'k1': 'v1', 'k2': 'v2'} 90
    若
    k,v = dic.popitem()
    print(dic,k,v)    #{'k1': 'v1'} k2 v2
    
    #4、 设置值,
    已存在,不设置,获取当前key对应的值
    不存在,设置,获取当前key对应的值
    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    v = dic.setdefault('k1','123')
    print(dic,v)  #{'k1': 'v1', 'k2': 'v2'} v1
    
    v=dic.setdefault('k3','v3')
    print(dic,v)  #{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} v3
    
    #5、更新字典,已经存在的修改,不存在的增加
    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    dic.update({'k1': '111111','k3': 123})
    print(dic)               #{'k1': '111111', 'k2': 'v2', 'k3': 123}
    dic.update(k1=123,k3=345,k5="asdf") 
    print(dic)          #{'k1': 123, 'k2': 'v2', 'k3': 345, 'k5': 'asdf'}
    
    #6 字典的values可以是任意值,但是字典的key不能是列表、字典、集合(元组可以)
    
    #7字典是无序的,可以按照keys索引:
    dici={'k1':'aaa','k2':'bbb','k3':[1,2,3]}
    
    print(dici['k1'])
    print(dici['k3'][1])
    
    #8字典指出del删除:
    dici={'k1':'aaa','k2':'bbb','k3':[1,2,3]}
    
    del(dici['k1'])
    print(dici)    #{'k2': 'bbb', 'k3': [1, 2, 3]}
    #9 字典的keys,values,items.这三个返回的不是一个列表,而是一个可遍历的类型,不支持按下标索引(python2返回的可以)。
    dici={'k1':'aaa','k2':'bbb','k3':[1,2,3]}
    print(dici.items())     #dict_items([('k1', 'aaa'), ('k2', 'bbb'), ('k3', [1, 2, 3])])
    print(dici.keys())     #dict_keys(['k1', 'k2', 'k3'])
    print(dici.values())   #dict_values(['aaa', 'bbb', [1, 2, 3]])
    for i in dici.items():  
        print(i)         #('k1', 'aaa')  ('k2', 'bbb') ('k3', [1, 2, 3])
    for  in dici.keys():
        print(i)       #k1 k2 k3
    for i in dici.values():
        print(i)    #aaa bbb [1,2,3]
    View Code

     三、集合(set)

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.  

    sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing。

     

    1、生成:(注意无序性)
    print(set('hello'))  #{'l', 'o', 'h', 'e'}    
    
    2、增加元素:
    set1 = {1, 2, 3}
    set1.add(4)
    print(set1)   #{1, 2, 3, 4}
    
    3、用于过滤重复元素
    ls=['a','b','c','a','c']
    print(set(ls))    #{'c', 'a', 'b'}
    
    4、交集& 并集| 差集-
    set1={'a','b','c'}
    set2={'a','f','g'}
    print(set1&set2)  #{'a'}
    print(set1|set2)  #{'b', 'a', 'f', 'g', 'c'}
    print(set1-set2)  #{'b', 'c'}


     
  • 相关阅读:
    使用gdb跟踪Linux内核启动过程(从start_kernel到init进程启动)
    对一个简单的时间片轮转多道程序内核代码的浅析
    初识计算机工作过程
    React 中 路由 react-router-dom 的用法
    Vue Nuxt.js项目启动后可以在局域网内访问的配置方法
    node express async regeneratorRuntime is not defined (已解决)
    node+vue实现微信支付(沙箱)完整版,亲测可用
    node+vue实现支付宝支付(沙箱)完整版,亲测可用
    Vue.js中Line第三方登录api实现[亲测可用]
    React中WebSocket使用以及服务端崩溃重连
  • 原文地址:https://www.cnblogs.com/linshuhui/p/8969329.html
Copyright © 2011-2022 走看看