zoukankan      html  css  js  c++  java
  • 🍖列表类型内置方法

    引入

    前面"Python开发入门"那一章已经对python基本的数据类型进行了大概的描述,以下我们主要从其内置方法来学习

    一.定义方式

    • "[ ]"内用逗号分割开多个元素, 无类型限制
    • 列表类型的 "工厂" 就是 list
    li = [111,222]
    背后的操作就是
    li = list([111,222])
    

    二.类型转换

    • 但凡可以被 for 循环遍历的类型都可以当做参数传给列表做成其元素
    将字符串转成列表类型
    x = "aasdasd"
    li = list(x)
    print(li)  #['a', 'a', 's', 'd', 'a', 's', 'd']
    
    将字典转,转的是字典的"key"
    
    工作原理
    li = []
    x = "aasdasd"
    for i in x:
        li.append(i)
    print(li)
    

    三.常用操作 + 内置方法

    优先掌握的操作(*********)

    1、按索引取值(正+反向)+ 可以取值也可以改值

    l=['a','b','c']
    正向
    print(l[1])  #b
    反向
    print(l[-1]) #c
    
    改值, 改大小写都行
    l[2]='d' 
    print(l)  #['a', 'b', 'd']
    如果索引不存在则报错
    l[8]='d' 
    print(l)  #报错
    

    2、切片,顾头不顾尾 + 步长

    li=['song','hai','xing','hhh','lihai']
    顾头不顾尾顾头不顾尾、步长
    print(li[0:3])      # ['song','hai','xing']
    print(li[0:5:2])    # ['song','xing','lihai']
    
    全部切片(浅拷贝)
    print(li[:len(li)])
    print(li[0:])
    print(li[:]) 
    
    颠倒列表
    print(li[::-1])  # ['lihai', 'hhh', 'xing', 'hai', 'song']
    

    ps : 深浅拷贝https://www.cnblogs.com/songhaixing/p/14015669.html

    3、长度

    li=['song','hai','xing','hhh','lihai']
    print(len(l))  #5
    

    4、成员运算 in 和 not in

    li = [111,222,333,[344,33]]
    print(111 in l)  #True
    print(099 in l)  #False
    

    5、追加 .append()

    • 在列表的末尾追加一个字符
    l=["aaa",2222,"cccc"]
    res=l.append("ddd")
    l.append("eee")
    print(l)    # ['aaa', 2222, 'cccc', 'ddd', 'eee']
    print(res)  # None (无返回值)
    

    6、插入 .insert()

    • 在"谁"的前面插入一个字符
    l=["aaa",2222,"cccc"]
    res=l.insert(1,"xxx")
    print(l)    #['aaa', 'xxx', 2222, 'cccc']
    print(res)  #None (无返回值)
    

    7、删除 del, remove, pop

    • del : 直接删除"谁", 通用万能删除, 它不支持赋值语法, 赋值会报错

    • .remove() : 直接按照成员来删除

    • .pop () : 按照索引来删除

    msg=['song','hai','xing','hhh','lihai']
    通过索引来删除
    del msg[1]
    del msg[1:5:2]  #del加切片 (hai,hhh)
    print(msg)
    
    直接通过元素来删除,没有返回值
    msg.remove('hai')
    print(msg)
    
    通过索引删除,并可拿到这个值
    msg.pop(1)
    msg.pop()  #不放置索引默认删除末尾
    print(msg)
    
    "pop"的特有功能:有返回值
    print(msg.pop(1))         #可以弹出这个值
    print(msg.remove('hai'))  #只删除,不会返回这个值
    

    7、循环取值

    l=[111,222,333,444,555,666,777]
    for i in l:
        print(i)
    

    需要掌握的操作(****)

    1.统计字符的个数 : .count()

    l=[111,222,333,444,111,555,666,777]
    print(l.count(111))  #2
    

    2.扩展,追加多个值 : .extend()

    l=[111,222,]
    字符串
    l.extend("hello")
    print(l)  #[111, 222, 'h', 'e', 'l', 'l', 'o']
    
    列表
    l.extend(["xxx","yyy"])
    print(l)  #[111, 222, 'h', 'e', 'l', 'l', 'o', 'xxx', 'yyy']
    
    追加字典的话加入的是"key"
    

    3.清空列表 : .clear()

    msg=['song','hai','xing','song','lihai']
    msg.clear()
    print(msg)  # []
    

    4. 浅拷贝列表 : .copy()

    msg=['song','hai','xing','song','lihai']
    l=msg.copy()
    print(l)  # ['song','hai','xing','song','lihai']
    

    5.计算个数 : .count()

    msg=['song','hai','xing','song','lihai']
    print(msg.count('song'))  # 2
    

    6.查找索引 : .index()

    • 找到指定字符在列表中的索引, 可以指定范围查找
    • 列表中没有像字符串中 : find、rfind、rindex 的这些方法
    msg=['song','hai','xing','song','lihai']
    print(msg.index('song',2,4))  # 3 (找不到会报错)
    

    7.排序 : .sort()

    l=[5,7,9,3,1,4]
    l.sort()   #排序
    print(l)
    
    参数"reverse"反序
    l.sort(reverse=True)  #反向排序
    print(l)
    

    8.反序 : .reverse()

    • 将列表顺序反转过来, 改的就是源列表
    li = [1, 'egon', 'alex', 'lxx']
    li.reverse()
    print(li)   # ['lxx', 'alex', 'egon', 1]
    

    四.列表比较的规则

    依照ascll码表对应的十进制来比较
    l1='hello'
    l2='k'
    print(l1 < l2)  #abcd....从小到大来比较
    
    l1=[3,'a','g','j',]
    l2=[1,'c','g',]
    print(l1 > l2)  #要一一对应,不然报错
    
    print('Z'>'a')  #大写小于小写A-Z,a-z
    print('a'>'G')  #大于任何大写的字母
    

    五.模拟数据结构

    1.队列 : FIFO (先进先出)

    • 类似于商场扶梯, 先上先下
    l=[]
    入队列
    l.append("first")
    l.append("second")
    l.append("third")
    print(l)  #['first', 'second', 'third']
    
    出队
    print(l.pop(0))  #first
    print(l.pop(0))  #second
    print(l.pop(0))  #third
    

    2.堆栈 : LIFO (后进先出)

    • 类似于往箱子里叠衣服
    l=[]
    入栈
    l.append("first")
    l.append("second")
    l.append("third")
    print(l)  #['first', 'second', 'third']
    
    出栈
    print(l.pop())  #third
    print(l.pop())  #second
    print(l.pop())  #first
    

    六.总结

    • 可以有多个值

    • 有序, 依赖于索引取值

    • 可变类型--->不可 hash 类型

  • 相关阅读:
    cocos2d-x 2.2 study ------------------------ 双击事件(转)
    cocos2d-x打包Android
    cocos2d-x在win7下的android交叉编译环境
    Cocos2d-x之CCImage深入分析
    Eclipse开发C/C++之使用技巧小结
    TortoiseSVN安装使用
    cocos2d-x 2.2 study ------------------------ CCCallFunC家族
    cocos2d-x改底层之动态改变UIListView中的某项在链表中的位置
    汇编语言,以10进制的方式显示数字
    JVM
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14017968.html
Copyright © 2011-2022 走看看