zoukankan      html  css  js  c++  java
  • 列表的使用

    列表是我们最以后最常用可变有序的数据类型,通过列表可以对数据实现最方便的存储、修改等操作。

     1 定义列表
     2 
     3 names = ['lhl',"tom",'jack']
     4 通过下标访问列表中的元素,下标从0开始计数
    14 >>> names[0]
    15 'lhl'
    16 >>> names[2]
    17 'jack'
    18 >>> names[-1]
    19 'jack'
    20 >>> names[-2] #还可以倒着取
    21 'tom'

    切片:取多个元素

     1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
     2 >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
     3 ['Tenglan', 'Eric', 'Rain']
     4 >>> names[1:-1] #取下标1至-1的值,不包括-1
     5 ['Tenglan', 'Eric', 'Rain', 'Tom']
     6 >>> names[0:3] 
     7 ['Alex', 'Tenglan', 'Eric']
     8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
     9 ['Alex', 'Tenglan', 'Eric']
    10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
    11 ['Rain', 'Tom', 'Amy'] 
    12 >>> names[3:-1] #这样-1就不会被包含了
    13 ['Rain', 'Tom']
    14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
    15 ['Alex', 'Eric', 'Tom'] 
    16 >>> names[::2] #和上句效果一样
    17 ['Alex', 'Eric', 'Tom']

    追加

    1 >>> names
    2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
    3 >>> names.append("我是新来的")
    4 >>> names
    5 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

    插入

    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    >>> names.insert(2,"强行从Eric前面插入")
    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    
    >>> names.insert(5,"从eric后面插入试试新姿势")
    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

    修改

    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    >>> names[2] = "该换人了"
    >>> names
    ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

    删除

    >>> del names[2] 
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    >>> del names[4]
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    >>> 
    >>> names.remove("Eric") #删除指定元素
    >>> names
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
    >>> names.pop() #删除列表最后一个值 
    '我是新来的'
    >>> names
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']

    扩展

    >>> names
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
    >>> b = [1,2,3]
    >>> names.extend(b)
    >>> names
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

    拷贝

    >>> names
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
    
    >>> name_copy = names.copy()
    >>> name_copy
    ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

    统计

    >>> names
    ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    >>> names.count("Amy")
    2

    排序&翻转

    >>> names
    ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    >>> names.sort() #排序
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
    >>> names[-3] = '1'
    >>> names[-2] = '2'
    >>> names[-1] = '3'
    >>> names
    ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    >>> names.sort()
    >>> names
    ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    
    >>> names.reverse() #反转
    >>> names
    ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']

    获取下标

    >>> names
    ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    >>> names.index("Amy")
    2 #只返回找到的第一个下标

    元组

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

    语法:

    1
    names = ("alex","jack","eric")

    它只有2个方法,一个是count,一个是index

    列表:任意字符有序的集合。
    变量名=【“值1”,“值2”,“值3”】
    变量名=【“起始值”,“结束值”,“步长”】
    下标从左到右从0开始
    下标从右到左从-1开始
    name[1:3] 取出1和2的值,3不取,顾头不顾尾
    name[-2:] 去倒数第二和之后的
    name.append("值") 追加值。默认到最后一位
    name.insert(1,"值") 插在1的位置,就是第二值
    name[2]="值"   把2位置的值改成新的
    name.remove("值")  删除莫个值
    del name[1]  删除莫个位置的值
    name.pop()   删除最后一个,即是-1位置的值
    print(name.index("值"))  查莫个值的下标   
    print(name.count("值")) 统计这个值有多少个
    name.clear() 清空值
    name.reverse()  值反转,倒过顺序排序
    name.sort()  按字母大小前后排序,特殊符号在前面,按ascii编码排序
    name.extend(列表名) 两个列表合并,合并的在后面。被合并的列表还存在
    namexin=name.copy()  把name列表值拷贝到namexin列表。浅拷贝。namexin改变了值,name也会跟着改变.
    想要完整拷贝要import copy
    namexin=copy.deepcopy(name) 深拷贝
    浅拷贝:
    namexin=copy.copy(name)
    namexin=name[:]
    namexin=list(name)
     
    alst=[0,1,2,3,4,5]
    len(alst):返回alst的元素数长度
    min(alst):返回alst中的最小值
    max(alst):返回alst中的最大值
    sum(alst,15):返回所有元素的和,连同15一起加起来
    all(alst):alst中所有项为真,则返回真,否则返回假
    any(alst):alst中有一项为真,则返回真,否则返回假
    注意:min(),max()函数要求序列中的元素能比较大小,sum()函数要求序列中要求元素只能是int 或float类型。 
     
     
  • 相关阅读:
    android开发架构理解
    检测到LoaderLock”的解决办法(新办法,在vs2008中)
    1-2SPRING-BOOT-JPA添加lombok-管理getter/setter
    PHP数组使用
    处理sublime中文乱码
    c#遍历datatable,dataset
    sublime3更换主题,主题推荐
    laravel voyager 安装
    array_filter,匿名函数
    git 记住密码
  • 原文地址:https://www.cnblogs.com/xuepython/p/6625873.html
Copyright © 2011-2022 走看看