zoukankan      html  css  js  c++  java
  • 列表用法补充

    列表属于序列中的一种,序列包括(列表,元组,字符串,buffer对象,xrange对象)

    列表跟元组唯一的区别就是:列表可以修改,元组不能被修改(元组不可修改的属性决定了元组可以在映射中当作键使用;可以作为很多内建函数和方法的返回值存在)

    之前在python基础篇中有总结过列表的基本用法,在这里做一下列表用法的补充:

    a=['tina fei',18]
    b=['tom li',22]
    c=[a,b]
    print(c)
    print(c[0])
    执行结果:
    [['tina fei', 18], ['tom li', 22]]
    ['tina fei', 18]
    phoneNumbers = ['213123','542113','543231','974723']
    names=['Ada', 'Bill', 'Candy', 'David']
    a=phoneNumbers[names.index('Bill')]
    print(a)#542113

    切片用法的案例补充:

    #切片的用法补充
    data=[1,2,3,4,5,6,7,8,9,10]
    print(data[-3:-1])
    print(data[-3:])
    print(data[::2])##从第三个开始是对步长的练习print(data[1::2])
    print(data[::-1])
    print(data[-1:-8:-1])
    print(data[8:1:-1])
    
    执行结果如下:
    [8, 9]
    [8, 9, 10]
    [1, 3, 5, 7, 9]
    [2, 4, 6, 8, 10]
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    [10, 9, 8, 7, 6, 5, 4]
    [9, 8, 7, 6, 5, 4, 3]

     分片赋值的用法:

    data=[1,2,3,4,5,6,7,8,9,10]
    data[0]=100#索引赋值
    del(data[2])#删除元素
    data[1:4]=list('tina')#分片赋值
    print(data,len(data))#[100, 't', 'i', 'n', 'a', 6, 7, 8, 9, 10] 10
    data[-2:]=list('hahaha')#分片赋值时,原片与新片长度不同
    print(data,len(data))#[100, 't', 'i', 'n', 'a', 6, 7, 8, 'h', 'a', 'h', 'a', 'h', 'a'] 14
    data[0:0]=list('test')#分片赋值可以在指定位置插入新的元素
    print(data,len(data))#['t', 'e', 's', 't', 100, 't', 'i', 'n', 'a', 6, 7, 8, 'h', 'a', 'h', 'a', 'h', 'a'] 18
    深浅拷贝中涉及到的列表分片:
    x=list('12345')
    y=x
    x.reverse()
    print(y)#['5', '4', '3', '2', '1']这里的y也跟着改变了
    #但是用分片的方法复制,x与Y是相互独立的,修改x,不会影响Y
    y=x[:]
    y.sort()
    print(x,y)#['5', '4', '3', '2', '1'] ['1', '2', '3', '4', '5']

    序列与运算符相结合的用法:

    1、加法:
    first=[1,2,3]
    second=[2,3,4]
    print(first+second)#[1, 2, 3, 2, 3, 4]
    2、乘法:
    first=[1,2,3]
    print(first*3)
    print([None]*2)
    执行结果:
    [1, 2, 3, 1, 2, 3, 1, 2, 3]
    [None, None]

    just for fun:打印盒子的案例(练习序列与运算符的用法)

    mystr=input('input any string follow your heart:')
    strlen=len(mystr)
    linestart=20
    print(' '*linestart+'+'+'-'*strlen+'+')
    print(' '*linestart+'|'+' '*strlen+'|')
    print(' '*linestart+'|'+mystr+'|')
    print(' '*linestart+'|'+' '*strlen+'|')
    print(' '*linestart+'+'+'-'*strlen+'+')
    执行结果如下:
    input any string follow your heart:I am falling in love with tina!
                        +-------------------------------+
                        |                               |
                        |I am falling in love with tina!|
                        |                               |
                        +-------------------------------+

     列表推导式

    matix=[[0 for i in range(4)] for i in range(4)]        # 用列表推导式初始化生成一个4*4的列表,列表元素全为 0
    
    执行结果如下:
    [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
  • 相关阅读:
    与众不同 windows phone (12) Background Task(后台任务)之 PeriodicTask(周期任务)和 ResourceIntensiveTask(资源密集型任务)
    直观理解图像的傅里叶变换
    简明Python3教程 13.面向对象编程
    简明Python3教程 4.安装
    简明Python3教程 8.控制流
    简明Python3教程 11.数据结构
    简明Python3教程 16.标准库
    简明Python3教程 12.问题解决
    简明Python3教程 9.函数
    简明Python3教程 2.序言
  • 原文地址:https://www.cnblogs.com/tina-python/p/5579894.html
Copyright © 2011-2022 走看看