美文网首页
Python note_列表

Python note_列表

作者: 小浣熊嘎嘣脆 | 来源:发表于2017-10-08 02:14 被阅读0次

    list函数

    list ('hello') #将各种数据类型转化为 列表
    
    ['h', 'e', 'l', 'l', 'o']
    

    列表的基本操作

    赋值

    x = [1,1,3] #列表x赋值
    x[1] = 2 #对列表中某个位置的元素赋值,但不能为一个位置不存在的元素进行赋值
    x
    
    [1, 2, 3]
    

    删除元素(del)

    y = ['a','b','c']
    del y[1]
    y
    
    ['a', 'c']
    
    x = ['1','2','3']
    del x[1]
    x
    
    ['1', '3']
    

    分片赋值

    分片赋值的强大体现在它可以一次为列表中的多个元素进行赋值,并且不用考虑原序列的长度。同时分片赋值还可以进行插入[1:1]删除= []的操作

    z = list('spot')
    print(z)
    z[1:3]=list('hee') #用3个元素替换2个元素
    print(z)
    z[2:4]=list('oo') #2个元素替换2个元素
    print(z)
    z[1:]=list('ignificant') #从第2个元素替换到最后
    print(z)
    z[1:1]=list('port') #在第2个元素后面插入几个元素
    print(z)
    z[5:]=[] #删除第6个元素后面的所有元素
    print(z)
    
    ['s', 'p', 'o', 't']
    ['s', 'h', 'e', 'e', 't']
    ['s', 'h', 'o', 'o', 't']
    ['s', 'i', 'g', 'n', 'i', 'f', 'i', 'c', 'a', 'n', 't']
    ['s', 'p', 'o', 'r', 't', 'i', 'g', 'n', 'i', 'f', 'i', 'c', 'a', 'n', 't']
    ['s', 'p', 'o', 'r', 't']
    

    列表方法

    方法是一种特殊的函数,它跟在某些对象后面,对象可以是列表、字符串、数字或其他类型
    调用方法 对象.方法(参数)

    下面包括10个列表方法

    1. append
    2. count
    3. extend
    4. index
    5. insert
    6. pop
    7. remove
    8. reverse
    9. sort
    10. 高级排序

    1. append

    用于在列表末尾添加元素

    name = list('littl')
    print(name)
    name.append('e')
    print(name)
    
    ['l', 'i', 't', 't', 'l']
    ['l', 'i', 't', 't', 'l', 'e']
    

    2. count

    统计某个元素在列表中出现的次数 常用

    name = list('little_raccoon')
    name.count('c')
    
    2
    

    3. extend

    在列表末尾一次性追加另一个列表,并且保存到原有的列表中

    name1 = list('little')
    name2 = list('_raccoon')
    name1.extend(name2)
    print(name1)
    
    ['l', 'i', 't', 't', 'l', 'e', '_', 'r', 'a', 'c', 'c', 'o', 'o', 'n']
    
    name1 = list('little')
    name2 = list('_raccoon')
    name1 = name1 + name2
    print(name1)
    
    
    ['l', 'i', 't', 't', 'l', 'e', '_', 'r', 'a', 'c', 'c', 'o', 'o', 'n']
    

    +也可以实现两个列表的合并,但是需要将合并的结果复制到一个列表中,不然结果无法保存

    4. index

    返回列表中某个元素的索引位置,如果有多个位置则返回第一个

    name = list('little_raccoon')
    print(name)
    name.index('i') #name中只有一个"i"
    
    ['l', 'i', 't', 't', 'l', 'e', '_', 'r', 'a', 'c', 'c', 'o', 'o', 'n']
    
    1
    
    name.index('t') #name中有两个"t",只返回第一个"t"的索引位置
    
    2
    

    5. insert

    将对象插入列表中
    与分片赋值相比,用insert的可读性更强

    name = list('littleraccoon')
    name.insert(6,'_')
    print(name)
    
    ['l', 'i', 't', 't', 'l', 'e', '_', 'r', 'a', 'c', 'c', 'o', 'o', 'n']
    

    6. pop

    移除列表中的一个元素(默认是最后一个元素值),LIFO,last in first out.

    num = list ('1234567788')
    print(num)
    name.pop()
    print(num)
    name.pop(6)
    print(num)
    
    ['1', '2', '3', '4', '5', '6', '7', '7', '8', '8']
    ['1', '2', '3', '4', '5', '6', '7', '7', '8', '8']
    ['1', '2', '3', '4', '5', '6', '7', '7', '8', '8']
    

    如果想实现FIFO,则可通过append和pop(0)

    num = list('11234567')
    print(num)
    num.pop(0)
    print(num)
    num.append('8')
    print(num)
    
    ['1', '1', '2', '3', '4', '5', '6', '7']
    ['1', '2', '3', '4', '5', '6', '7']
    ['1', '2', '3', '4', '5', '6', '7', '8']
    

    7. remove

    移除列表中某个元素的第一个匹配值

    num = list('12345677890')
    num.remove('0') #列表中只有一个“0”时
    print(num)
    num.remove('7') #列表中有两个“7”时,使用remove之移除第一个匹配值
    print(num)
    
    ['1', '2', '3', '4', '5', '6', '7', '7', '8', '9']
    ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    

    8. reverse

    将列表元素反向存放

    num = list('7654321')
    num.reverse()
    print(num)
    
    ['1', '2', '3', '4', '5', '6', '7']
    

    9. sort

    sort会对原来的列表进行修改,如果想保留原来的列表要怎么办呢?下面有一个错误的做法和正确的做法

    错误做法

    x = list('173625489')
    y = x.sort()
    print(x,y)
    
    ['1', '2', '3', '4', '5', '6', '7', '8', '9'] None
    
    
    因为sort修改了列表x的排序,但是返回的是空值
    

    正确做法

    x = list('173625489')
    y = x[:]   #很有效率的复制整个列表的方法
    y.sort()
    print(x,y)
    
    ['1', '7', '3', '6', '2', '5', '4', '8', '9'] ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    

    列表赋值时可能出现的错误

    x = list('173625489')
    y = x     #这样做将x和y指向了同一个列表,而应该是将列表x中的值赋给y
    y.sort()
    print(x,y)
    
    ['1', '2', '3', '4', '5', '6', '7', '8', '9'] ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    

    10. 高级排列

    没太看明白,先占个坑吧
    

    列表和元素一章中出现的函数总结

    函数 描述
    cmp(x,y) 比较两个值
    len(seq) 返回序列的长度
    list(swq) 把序列转换成列表
    max(args) 返回序列或者参数集合中的最大值
    min(args) 返回序列或者参数集合中的最小值
    reversed(seq) 对序列进行反向迭代
    sorted(seq) 返回已排序的包括seq所有元素的列表
    tuple(seq) 把序列转换成元组

    相关文章

      网友评论

          本文标题:Python note_列表

          本文链接:https://www.haomeiwen.com/subject/xiasyxtx.html