zoukankan      html  css  js  c++  java
  • 2.4列表list

    声明:师从老男孩太白金星,不对代码做任何保证,如有问题请自携兵刃直奔沙河

    Why: 我们现在已经学过的数据类型有:数字,布尔值,字符串,大家都知道数字主要用于计算,bool值主要是条件判断,只有字符串可以用于数据的存储,这些数据类型够用么?对于一门语言来说,肯定是不够用的。就说字符串:

        1,字符串只能存储少量的数据,对于大量的数据用字符串操作不方便也不易存储。

        2,字符串存储的数据类型太单一,只能是字符串类型。

        例如:‘1 True alex’ 像这样的字符串,我如果通过切片或者其他方法将1 True alex 取出来,他也只能是字符串,但是我想要得到数字的1,布尔值的True,必须还要转化,是不是很麻烦。

    所以python给咱们也提供了一类数据类型,他能承载多种数据类型,这类数据类型被称作容器类数据类型可以存储大量的数据。列表就属于容器类的数据类型。

    What:这个数据类型就是list列表。

        列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类

    型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

    li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

    列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

    How:那么这个列表如何使用呢?咱们从这几方面去深入研究这个列表。

    2.4.1 列表的创建

    复制代码
    # 创建一个列表有三种方式:
    
    # 方式一:(常用)
    l1 = [1, 2, '太白']
    
    
    # 方式二:(不常用)
    l1 = list()  # 空列表
    # l1 = list(iterable)  # 可迭代对象
    l1 = list('123')
    print(l1)  # ['1', '2', '3']
    
    # 方式三:列表推导式(后面的课程会讲到)
    l1 = [i for i in range(1,5)]
    print(l1)  # [1, 2, 3, 4]
    复制代码

    2.4.2 列表的索引切片

    l1 = ['a', 'b', '太白', 3, 666]
    print(l1[0]) # 'a'
    print(l1[-1]) # 666
    print(l1[1:3]) # ['b', '太白']
    print(l1[:-1]) # ['a', 'b', '太白', 3]
    print(l1[::2]) # ['a', '太白', 666]
    print(l1[::-1]) # [666, 3, '太白', 'b', 'a']


    复制代码
    l1 = ['a', 'b', '太白', 3, 666]
    print(l1[0])  # 'a'
    print(l1[-1])  # 666
    print(l1[1:3])  # ['b', '太白']
    print(l1[:-1])  # ['a', 'b', '太白', 3]
    print(l1[::2])  # ['a', '太白', 666]
    print(l1[::-1])  # [666, 3, '太白', 'b', 'a']
    复制代码
    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
    通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
    通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
    通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]

    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
    通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
    通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
    通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]

    2.4.3. 

    # append 追加,给列表的最后面追加一个元素
    l = [1, 2, 'a']
    l.append(666)
    print(l) # [1, 2, 'a', 666]

    # insert 插入在列表的任意位置插入元素
    l = [1, 2, 'a']
    l.insert(1,'太白')
    print(l) # [1, '太白', 2, 'a']

    # extend 迭代着追加,在列表的最后面迭代着追加一组数据
    l = [1, 2, 'a']
    l.extend('太白a')
    print(l)

    列表的增


    复制代码
    # append 追加,给列表的最后面追加一个元素
    l = [1, 2, 'a']
    l.append(666)
    print(l) # [1, 2, 'a', 666]
    
    # insert  插入在列表的任意位置插入元素
    l = [1, 2, 'a']
    l.insert(1,'太白')
    print(l) # [1, '太白', 2, 'a']
    
    # extend  迭代着追加,在列表的最后面迭代着追加一组数据
    l = [1, 2, 'a']
    l.extend('太白a')
    print(l)
    复制代码

    2.4.4. 

    # pop 通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
    l = ['太白', 'alex', 'WuSir', '女神']
    ret = l.pop(1)
    print(ret,l) # alex ['太白', 'WuSir', '女神']

    # remove 通过元素删除列表中该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    l.remove('alex')
    print(l) # ['太白', 'WuSir', '女神']

    # clear 清空列表
    l = ['太白', 'alex', 'WuSir', '女神']
    l.clear()
    print(l) # []

    # del
    #按照索引删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[2]
    print(l) # ['太白', 'alex', '女神']

    # 切片删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[1:]
    print(l) # ['太白']

    # 切片(步长)删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[::2]
    print(l) # ['alex', '女神']

    列表的删


    复制代码
    # pop  通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
    l = ['太白', 'alex', 'WuSir', '女神']
    ret = l.pop(1)
    print(ret,l) # alex ['太白', 'WuSir', '女神']
    
    # remove  通过元素删除列表中该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    l.remove('alex')
    print(l) # ['太白', 'WuSir', '女神']
    
    # clear 清空列表
    l = ['太白', 'alex', 'WuSir', '女神']
    l.clear()
    print(l) # []  
    
    # del
    #按照索引删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[2]
    print(l) # ['太白', 'alex', '女神']
    
    # 切片删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[1:]
    print(l) # ['太白']
    
    # 切片(步长)删除该元素
    l = ['太白', 'alex', 'WuSir', '女神']
    del l[::2]
    print(l) # ['alex', '女神']
    复制代码

    2.4.5. 

    # 按照索引改值
    l = ['太白', 'alex', 'WuSir', '女神']
    l[0] = '男神'
    print(l) # ['男神', 'alex', 'WuSir', '女神']

    # 按照切片改值(迭代着增加)
    l = ['太白', 'alex', 'WuSir', '女神']
    l[1:3] = 'abcdefg'
    print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神']

    # 按照切片(步长)改值(必须一一对应)
    l = ['太白', 'alex', 'WuSir', '女神']
    l[::2] = '对应'
    print(l) # ['对', 'alex', '应', '女神']

    列表的改


    复制代码
    # 按照索引改值
    l = ['太白', 'alex', 'WuSir', '女神']
    l[0] = '男神'
    print(l) # ['男神', 'alex', 'WuSir', '女神']
    
    # 按照切片改值(迭代着增加)
    l = ['太白', 'alex', 'WuSir', '女神']
    l[1:3] = 'abcdefg'
    print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神'] 
    
    # 按照切片(步长)改值(必须一一对应)
    l = ['太白', 'alex', 'WuSir', '女神']
    l[::2] = '对应'
    print(l) # ['对', 'alex', '应', '女神']
    复制代码

    2.4.6. 

    切片去查,或者循环去查。

    2.4.5 其他操作这些方法会在数据类型的补充时再给大家讲~

    2.4.5、其他操作

    count(数)(方法统计某个元素在列表中出现的次数)。

    1 a = ["q","w","q","r","t","y"]
    2 print(a.count("q"))

    index(方法用于从列表中找出某个值第一个匹配项的索引位置)

    1 a = ["q","w","r","t","y"]
    2 print(a.index("r"))

    sort (方法用于在原位置对列表进行排序)。

     reverse (方法将列表中的元素反向存放)。

    1 a = [2,1,3,4,5]
    2 a.sort()# 他没有返回值,所以只能打印a
    3 print(a)
    4 a.reverse()#他也没有返回值,所以只能打印a
    5 print(a)
    isinstance

    (方法用于判断元素的类型,类似于typef方法)。

    a = 1
    b = [1,2,3,4]
    c = (1,2,3,4)
    d = {‘a‘:1,‘b‘:2,‘c‘:3}
    e = "abc"
    if isinstance(a,int):
        print "a is int"
    else:
        print "a is not int"
    if isinstance(b,list):
        print "b is list"
    else:
        print "b is not list"
    if isinstance(c,tuple):
        print "c is tuple"
    else:
        print "c is not tuple"
    if isinstance(d,dict):
        print "d is dict"
    else:
        print "d is not dict"
    if isinstance(e,str):
        print "d is str"
    else:
        print "d is not str"

    列表也可以相加与整数相乘

    l1 = [1, 2, 3]
    l2 = [4, 5, 6]
    # print(l1+l2)  # [1, 2, 3, 4, 5, 6]
    print(l1*3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

    l1 = [1, 2, 3]
    l2 = [4, 5, 6]
    # print(l1+l2)  # [1, 2, 3, 4, 5, 6]
    print(l1*3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    计算列表的长度并输出
    列表中追加元素"seven",并输出添加后的列表
    请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请删除列表中的元素"ritian",并输出添加后的列表
    请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
    请删除列表中的第2至4个元素,并输出删除元素后的列表

    相应练习题


    复制代码
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    计算列表的长度并输出
    列表中追加元素"seven",并输出添加后的列表
    请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请删除列表中的元素"ritian",并输出添加后的列表
    请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
    请删除列表中的第2至4个元素,并输出删除元素后的列表
    复制代码

    2.4.6 列表的嵌套

    l1 = [1, 2, 'taibai', [1, 'WuSir', 3,]]
    1, 将l1中的'taibai'变成大写并放回原处。
    2,给小列表[1,'alex',3,]追加一个元素,'老男孩教育'。
    3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    将列表lis中的"tt"变成大写(用两种方式)。
    将列表中的数字3变成字符串"100"(用两种方式)。
    将列表中的字符串"1"变成数字101(用两种方式)。

    补充:
    列表转化为字符串,join
    li = ['taibai','alex','wusir','egon','女神',]
    s = '++++'.join(li)

    字符串转为列表:

    a = "alex wusir"
    print(a.split())
    print(type(a))

    
    
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    将列表lis中的"tt"变成大写(用两种方式)。
    将列表中的数字3变成字符串"100"(用两种方式)。
    将列表中的字符串"1"变成数字101(用两种方式)。

    Where:(这个知识点用在什么地方):

      你需要存储大量的数据,且需要这些数据有序的时候。

      制定一些特殊的数据群体:按顺序,按规则,自定制设计数据。

    声明:师从老男孩太白金星,不对代码做任何保证,如有问题请自携兵刃直奔沙河
  • 相关阅读:
    ueditor单独调用图片上传
    百度Ueditor多图片上传控件
    linux基础之vim编辑器
    linux基础之进阶命令二
    linux基础之基础命令一
    Python基础之PyCharm快捷键大全
    IT菜鸟之VTP应用项目
    IT菜鸟之总结(Du teacher)
    IT菜鸟之DHCP
    IT菜鸟之路由器基础配置(静态、动态、默认路由)
  • 原文地址:https://www.cnblogs.com/yanglongyue/p/10640575.html
Copyright © 2011-2022 走看看