• Python学习笔记-Day4


    今日大纲

    一、列表和列表的常用方法

    二、元组

    三、range()

    一、列表和列表的常用方法

    列表是python的基础数据类型之一,其他语言中也有列表的概念,例如在JS中叫数组。列表相比于字符串,不仅可以存储各种数据类型,还存储大量的数据类型,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

    列表是有序的,有索引值,可切片,方便取值。

    例如:

    list = ['alex',100,True,[1,2,3],{'name':'taibai'},(22,33)]

    1、列表的索引

    列表的索引与字符串相同,都是索引、切片、步长

    例如:

    list=['alex',100,True,[1,2,3],{'name':'taibai'},(22,33)]
    print(list[0],type(list[0]))
    print(list[1],type(list[1]))
    print(list[:4])
    
    #输出结果:
    #alex <class 'str'>
    #100 <class 'int'>
    #['alex', 100, True, [1, 2, 3]]

    2、列表的增、删、改、查、其他方法

    (1)列表的增(3种方法)

      append():在列表的最后追加,没有返回值

      insert():根据位置增加

      extend():在列表的最后追加,按照最小单元形式

    例如:

    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.append([1,2,3])
    # print(l1.append([1,2,3]))#没有返回值,因为l1.append([1,2,3])是一个过程
    print(l1)
    
    输出结果:
    ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天', [1, 2, 3]]
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.insert(1,'抱怨')#在位置1前加入
    print(l1)
    
    输出结果:
    ['alex', '抱怨', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']
    1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.extend('abc')#['alex','wusir','taibai','egon','景女神','文周','日天','a','b','c']
    l1.extend([111,222,333])#['alex','wusir','taibai','egon','景女神','文周','日天',111,222,333]
    l1.extend(['alex','wusir'])#['alex','wusir','taibai','egon','景女神','文周','日天','alex','wusir']

    (2)列表的删(4种方法)

      pop():按照索引的位置删除,有返回值,返回值是被删除的元素

      remove():按照元素删除

      clear():清空

      del():① 按照索引的位置删除

                      ②按照切片和步长删除

                      ③全部清空

    #pop()
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.pop(0)
    print(l1.pop(0))  # 有返回值,返回值是删除的内容
    print(l1)
    输出结果是
    wusir
    ['taibai', 'egon', '景女神', '文周', '日天']
    
    #remove
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.remove('alex')
    print(l1)
    输出结果是:
    ['wusir', 'taibai', 'egon', '景女神', '文周', '日天']
    
    #clear
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1.clear()
    print(l1)
    输出结果是:
    []
    
    #del  从内存上删除
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    del l1
    print(l1)
    输出结果是:
    出错,NameError: name 'l1' is not defined
    
    #del 按索引删除
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    del l1[0]
    print(l1)
    输出结果是:
    ['wusir', 'taibai', 'egon', '景女神', '文周', '日天']
    
    #del 按照切片删除
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    del l1[0:2]
    print(l1)
    输出结果是:
    ['taibai', 'egon', '景女神', '文周', '日天']
    
    #del 按照切片+步长删除
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    del l1[::2]
    print(l1)
    输出结果是:
    ['wusir', 'egon', '文周']

     (3)改:直接用=将更改的内容赋值给被更改的内容

      ①按索引更改

      ②按切片更改:可在切片位置放任意多个参数

      ③按切片加步长更改:只能按照切片宽度放置参数个数

    #按索引更改,一次只能更改一处
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1[0] = 'abc'
    print(l1)
    输出结果:
    ['abc', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']
    
    #按切片更改
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1[:4]=[11,22,33,44,55,66]
    print(l1)
    输出结果是:
    [11, 22, 33, 44, 55, 66, '景女神', '文周', '日天']
    
    #按切片加步长更改
    l1=['alex','wusir','taibai','egon','景女神','文周','日天']
    l1[:4:2]=[11,22]
    print(l1)
    输出结果是:
    [11, 'wusir', 22, 'egon', '景女神', '文周', '日天']

    (4)查

      查询方式有两种,①按照索引查;②用for循环

     (5)其他方法

      其他方法就是和字符串的其他方法类似

      len():求数组的长度

      count():求数组种某个元素的个数

      index():通过元素找索引,数组不能用find()

      sort():排序

    l2 = [1, 4, 5, 9, 5]
    l2.sort()  # 数字从小到大
    l2.sort(reverse=True)  # 数字从大到小
    l2.reverse()  # 反转

    二、元组

    tu1=('alex','wusir',['taibai',99,'ritian'],20)

    1、查询方式:与列表相同

    2、可使用index、count、len

    3、应用场景:一些非常重要的数据不允许任何人修改就放在元组种。

    4、元组的儿子不能修改,但是孙子可以修改

    例如:

    tul1=('alex','wusir',['taibai',99,'ritian'],20)
    #tul1[0]='namsahn'#元组里儿子不允许修改
    tul1[2][0]=123#元组里的孙子辈可以增删改
    tul1[2].append('a')
    print(tul1)
    
    输出结果:
    ('alex', 'wusir', [123, 99, 'ritian', 'a'], 20)

    三、range

    自定制数据范围的可迭代对象,可以类比成列表,只是和for循环结合使用

    例如:

    for i in range(1, 20, 2):     #打印1~20之间的奇数
        print(i)
    
    for i in range(10, -1, -1):      #反向步长,打印10`0
        print(i)

    例题:

    #打印列表中的索引值
    l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周', '日天']
    for i in l1:
        print(l1.index(i))  # 方法1:列表中不能有重复的元素
    
    for i in range(0, len(l1)):  # 方法2:列表中可以有重复的元素
        print(i)

    元组是只读列表,只允许查询,不允许增、删、改

      

  • 相关阅读:
    DAG:区块链行业下一个引爆点?
    php7的新特性
    Linux中的冷热页机制概述
    撰写后台需求文档需要注意的那些事儿
    poj 1201 Intervals
    poj 1364
    poj Candies
    hdu 1429
    poj A Round Peg in a Ground Hole
    poj 1113Wall
  • 原文地址:https://www.cnblogs.com/tian-tian/p/9438571.html
Copyright © 2020-2023  润新知