zoukankan      html  css  js  c++  java
  • 列表类型

    作用:存放多个值

    定义

    l=[1,1.2,'a']
    print(type(l))
    >>>
    list
    

    类型转换

    但凡能够被for循环遍历的类型都可以当作参数传给lIstanbul()进行转换,转换成列表

    res=list('hello')#把字符串转换成列表
    print(res)
    >>>
    ['h','e','l','l','o']
    
    res=list({'k1':111,'k2':222,'k3':3333})#索引的是key
    print(res)
    >>>
    ['k1','k2','k3']#字典是无序的,索引取的是key
    

    按索引取值能分为 正向取 反向取和可以取也可以改

    正向取

    l= [111,'egon','hello']
    print(l[0])
    >>>
    [111]
    

    反取向

    l= [111,'egon','hello']
    print(l[-1])
    >>>
    [hello]
    

    可以取也可以改

    l = [111,'egon','hello']
    print(l[o])#取值
    >>>
    111
    print(l[3])#索引不存在则报错
    >>>报错
    
    l[0] = 222#索引存在则修改对应的值
    print(l)
    >>>
    [222,'egon','hello']
    
    l[3] = 333#索引不存在则报错
    print(l)
    >>>
    报错
    

    切片

    顾头不顾尾(最后一个值取不到)

    l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    print(l[0:3])#前面的0就是从0开始索引,后面的3就是索引到第三位,因为顾头不顾尾所以最后一个取不到,只取前两个
    >>>
    [111,'egon']
    
    步长
    l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    print(l[0:5:2]) #一次跳两个格,步长为2
    >>>
    [111,'hello','b']
    
    l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    print(l[0:len(l)])#len是量有多少个字符,在这里连用就是全部切下来的意思
    >>>
    [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    
    print(l[:])#前一个空格就是默认从0开始索引,后一个空格就是默认后面有多少内容就输入多少内容
    new_l=l[:] # 切片等同于拷贝行为,而且相当于浅copy
    >>>
    [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    
    
    反步长
    l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
    print(l[::-1])#-1就是从最后一个反向输入
    >>>
    [[1, 2, 3], 'd', 'c', 'b', 'a', 'hello', 'egon', 111]
    

    len()

    长度

    a = [1, 2, 3]
    print(len(a))#测一共有多少个字符
    >>>
    3
    

    成员运算 in not in

    print('aaa' in ['aaa', 1, 2])#判断aaa是否在['aaa',1,2]l列表中
    >>>
    True
    
    print(1 in ['aaa', 1, 2])#判断1是否在['aaa',1,2]l列表中
    >>>
    True
    

    apprnd()

    往列表中添加值

    a = []
    a.append(11)
    a.append(22)
    print(a)
    >>>
    [11,22]#append永远都是往列表的末尾加值
    
    a=[]
    aa=[]
    a.append(111)
    aa.append(222) #哪个列表调用append,就往哪个列表里面加值
    print(a)
    >>>[111]
    print(aa)
    >>>
    [222]
    
    

    insert()

    插入值

    l=[111,'egon','hello']
    l.insert(0,'alex')#可以指定插入的位置,0就是从左到右第一个位置插入
    print(l)
    

    extend()

    添加值

    l=[111,'egon','hello']
    new_l=[1,2,3]
    l.extend(new_l)#extend就像for循环,把值依次取出,然后再依次添加
    print(l)
    >>>
    [111,'egon','hello',1,2,3]
    

    item

    依次取出元素

    l=[111,'egon','hello']
    new_l=[1,2,3]
    for item in new_l:
    	l.append(item)
    print(l)
    >>>
    [111,'egon','hello',1,2,3]
    

    删除

    方式一:del

    通用的删除方法,只是单纯的删除、没有返回值

    l = [111, 'egon', 'hello']
    del l[1]
    x =del l[1] # 抛出异常,不支持赋值语法
    print(l)
    ['egon','hello']
    

    方式二:pop()

    根据索引删除,会返回删除的值

    l = [111, 'egon', 'hello']
    l.pop() # 不指定索引默认删除最后一个
    l.pop()
    print(l)
    >>>
    [111]
    
    l = [111, 'egon', 'hello']
    res=l.pop(1)#把删除元素的赋值给一个变量名,然后可以通过变量名查看删除的元素
    print(l)
    >>>
    egon  #删除的就是egon
    

    方式三:remove()

    根据元素删除,返回None

    l = [111, 'egon', [1,2,3],'hello']
    l.remove([1,2,3])#需要删除哪些元素就把那些元素全部添加到括号内
    print(l)
    >>>
    [111,'egon','hello']
    
    l = [111, 'egon', [1,2,3],'hello']
    res=l.remove('egon')
    print(res) 
    >>>
    None# 返回值为None,就是空的意思
    

    循环

    l=[1,'aaa','bbb']
    for x in l:#in后面有三个值就循环三次
    	print(x)
    >>>
    1
    aaa
    bbb
    

    count()

    统计次数

    l = [1, 'aaa', 'bbb','aaa','aaa']
    print(l.count('aaa'))
    >>>
    3
    

    index()

    查找索引,返回找到的第一个索引,找不到则报错

    l = [1, 'aaa', 'bbb','aaa','aaa']
    print(l.index('aaa'))
    >>>
    True
    print(l.index('aaaaaaaaa'))
    >>>
    Fales
    

    reverse():

    反转(把序列倒过来的意思)

    l = [1, 'egon','alex','lxx']
    l.reverse()
    print(l)
    >>>
    ['lxx', 'alex', 'egon', 1]
    

    sort()

    排列,列表元素必须是同种类型才可以排序

    l=[11,-3,9,2,3.1]
    l.sort() # 默认从小到大排,称之为升序
    l.sort(reverse=True) # 从大到小排,设置为降序
    print(l)
    [11, 9, 3.1, 2, -3]
    
    l=['c','e','a']
    l.sort()
    print(l)
    >>>
    ['a', 'c', 'e']
    

    字符串也是可以比大小的,按照SCI码表的先后顺序区别表中排在后面的字符大于前面的

    print('a'>'b')
    >>>
    False
    print('abz'>'abcdefg')
    >>>
    True
    

    列表也可以比大小,同理跟字符串一样

    l1=[1,'abc','zaa']
    l2=[1,'abc','zb']
    print(l1 < l2)#越是后面的字母越大
    >>>
    True
    

    队列:

    FIFO,先进先出

    入队操作
    l=[]
    l.append(1)#append永远是往列表末尾添加值
    l.append(2)
    l.append(3)
    print(l)
    出队操作
    print(l.pop(0))#不指定删除位置,默认删除最后一个
    print(l.pop(0))
    print(l.pop(0))
    

    堆栈:

    后进先出

    l=[]
    入栈操作
    l.append('first')
    l.append('second')
    l.append('third')
    print(l)
     出队操作
    print(l.pop())
    print(l.pop())
    print(l.pop())
    
  • 相关阅读:
    【单调队列】POJ2823-Sliding Window
    【单调队列】广告印刷
    反射复习笔记01
    redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表
    mybatis 复习笔记02
    mybatis 复习笔记01
    Mongodb 笔记02 创建、更新和删除文档
    NIO复习03
    Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
    NIO复习02
  • 原文地址:https://www.cnblogs.com/hm666/p/12493975.html
Copyright © 2011-2022 走看看