• 3_组合数据类型


    1. 列表

           1.1 列表的常用操作

    list=[0,1,2,3,4,5,6,7,8,9,10]
    list1=[11,12]
    
    >>>list[1:5]					##列表切片,左闭右开
    [1, 2, 3, 4]
    
    >>>list[1:5:2]					##控制跳转步幅
    [1,3]
    
    >>>list[::2]					##常用的步幅跳转策略
    [0, 2, 4, 6, 8, 10]
    
    >>>for x in list:				##列表遍历
        print(x)
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10   
    
    >>>list+=list1					##两种方法合并列表
    >>>list.extend(list1)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    
    >>>list.append('T')				##在列表末尾添加元素
    [0,1,2,3,4,5,6,7,8,9,10,'T']
    
    >>>list.insert(0,'x')			##指定位置添加元素
    ['x',0,1,2,3,4,5,6,7,8,9,10,'T']
    
    >>>list.count('x')				##计数某元素出现的次数
    1
    
    >>>list.index('x')				##返回某元素第一次出现的位置,不在则会返回异常
    0
    
    >>>del list[0]					##删除指定位置的元素
    [0,1,2,3,4,5,6,7,8,9,10,'T']
    	
    >>>list.remove('T')				##顺序检索删除指定元素一次,不在则会返回异常
    [0,1,2,3,4,5,6,7,8,9,10]
    
    >>>list.pop(2)					##删除并返回指定位置的元素,缺省为末尾
    2
    >>>list
    [0,1,3,4,5,6,7,8,9,10]
    
    >>>s='Hello'					##字符串转化为列表
    >>>t=list(s)
    >>>t
    ['H','e','l','l','o']
    

           1.2 列表的常用函数

    list1=[123,213]
    list2=[123,321]
    list3=[123,123]
    
    >>>cmp(list1,list2)				##列表比较
    -1
    >>>cmp(list1,list2)
    1
    >>>cmp(list1,list3)
    0
    
    >>>max(list1)					##最大值
    213
    >>>min(list2)					##最小值
    123
    >>>sum(list1)					##求和
    336
    


    2. 元组

           元组和列表大部分相同,唯一区别在于元组是不可变的!

           不可变的真正含义是:元组内每个元素所指向的地址不变!所以当元组内的元素是列表时,可以改变这个列表内的元素的值,因为本身这个列表的地址并没有因此而改变。

    >>>t=(1,)						##逗号不可以省略
    
    >>>list=[1,2,3]					
    >>>t=tuple(list)				##列表转换为元组
    (1,2,3)
    


    3. 字典

           3.1 字典的常用操作

    ##使用zip函数结合两个元组创建字典
    >>>d=dict(zip(('id','name','city'),(19,'Jack','BeiJing')))
    {'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    
    >>>for key in d.keys():			##字典遍历
        print(key,d[key])
    id 19
    name Jack
    city BeiJing
    
    >>>del d['id']					##删除指定的键值对
    {'name': 'Jack', 'city': 'BeiJing'}
    
    >>>d.pop('city')				##使用popitem可以随机删除
    'BeiJing'
    >>>d
    {'name': 'Jack'}
    

           3.2 字典的常用函数

                  3.2.1 深浅拷贝
    >>>x={'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    >>>y=x,copy()					##浅拷贝,只是原来对象的一个引用
    {'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    
    >>>from copy import deepcopy
    >>>de_y=deepcopy(x)				##导入模块进行深拷贝
    {'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    
                  3.2.2 给定键建立字典
    >>>list=['name','id','city']	##可以自己设置值是什么,默认为None
    >>>dict.fromkeys(list,'unknow')		
    {'name':'unknow','id':'unknow'}
    
                  3.2.3 get()方法访问
    ##即使不存在,不会返回异常,而是返回None
    
                  3.2.4 items方法
    >>>x={'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    >>>x.items()
    dict_items([('id', 19), ('name', 'Jack'), ('city', 'BeiJing')])
    
                  3.2.5 获取键、值列表
    ##返回为列表形式
    >>>x={'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    >>>x.keys()
    >>>x.values()
    dict_keys(['id', 'name', 'city'])
    dict_values([19, 'Jack', 'BeiJing'])
    
                  3.2.5 update方法
    ##用另一份字典来更新字典,存在则覆盖,不存在则添加
    >>>x={'id': 19, 'name': 'Jack', 'city': 'BeiJing'}
    >>>y={'uc':'I'}
    >>>x.update(y)
    {'id': 19, 'name': 'Jack', 'city': 'BeiJing','uc':'I'}
    


    4. 集合

    s=set([1,2,3,4,])
    
    >>>s.add(5)						##添加元素
    {1,2,3,4,5}
    
    >>>s.remove(4)					##删除元素,不存在会报错
    {1,2,3,5}
    
    >>>s.discard(4)					##删除元素,不存在不会报错
    {1,2,3,5}
    
    `````````````````````````````````````````````````````````````````````````````````````
    s1=set([1,2,3,4])
    s2=set([3,4,5,6,7])
    
    >>>s1.intersection(s2)			##交集
    >>>s1 &s2
    {3,4}
    
    >>>s1.union(s2)					##并集
    >>>s1 | s2
    {1,2,3,4,5,6,7}
    
    >>>s1.difference(s2)			##差集
    >>>s1-s2
    {1,2}
    
    >>>s1.symmetric_difference(s2)	##对称差集
    >>>s2.symmetric_difference(s1)
    {1,2,5,6,7}
    
    s1.issubset(s2)					##子集
    
    s1.issuperset(s2)				##超集
    


    5. 列表生成式

    >>>[x*x for x in range(1,11) if x % 2 == 0]
    [4,16,36,64,100]
    
    >>>[m + n for m in "AB" for n in "XY"]
    ["AX","AY","BX","BY"]
    


    6. 生成器——generator

           列表生成式在元素量较少时推荐使用,但是在大量元素时,有时并不需要中间某些元素的意义,只需要一个算法推演,于是在python中,一边循环一边计算的机制,就叫生成器——generator

    ##将列表生成式的[]改成()即可得到生成器
    L = [x*x for x in range(1,11)]
    G = (x*x for x in range(1,11))
    
    >>>next(G)						##简单的得到下一个元素
    1
    >>>next(G)
    4
    
    >>>def fib(max):				##利用yield生成一个斐波那契数列的生成器
        n,a,b=0,0,1
        while n<max:
            yield b
            a,b=b,a+b
            n+=1
        return 'done'
    >>>f=fib(6)
    

           

           

           

           

  • 相关阅读:
    UUID含义及ubuntu配置系统默认JDK
    MYSQL 问题小总结
    纯CSS3实现常见多种相册效果
    Docker Api 实测
    Dijkstra with priority queue 分类: ACM TYPE 2015-07-23 20:12 4人阅读 评论(0) 收藏
    hash值的计算与转换 分类: ACM TYPE 2015-05-07 17:49 36人阅读 评论(0) 收藏
    NYOJ
    进制转换函数 2015-02-15 09:41 32人阅读 评论(0) 收藏
    操作系统图解 2015-02-03 23:44 71人阅读 评论(0) 收藏
    [kuangbin带你飞]专题一 简单搜索
  • 原文地址:https://www.cnblogs.com/machine-lyc/p/10623201.html
Copyright © 2020-2023  润新知