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类型。 
     
     
  • 相关阅读:
    Leetcode Excel Sheet Column Number
    AlgorithmsI PA2: Randomized Queues and Deques Subset
    AlgorithmsI PA2: Randomized Queues and Deques RandomizedQueue
    AlgorithmsI PA2: Randomized Queues and Deques Deque
    AlgorithmsI Programming Assignment 1: PercolationStats.java
    hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题
    hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对
    hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
    hdu多校第三场 1007 (hdu6609) Find the answer 线段树
    hdu多校第三场 1006 (hdu6608) Fansblog Miller-Rabin素性检测
  • 原文地址:https://www.cnblogs.com/xuepython/p/6625873.html
Copyright © 2011-2022 走看看