• Day 04 列表,元祖,range


    列表:

      why: 

        1、字符串取值费劲

        2、对字符串做任何操作,取出来的都是字符串

        3、字符串有长度限制

        基于以上原因,python提供了另一个数据类型,list 容器类数据类型。

       列表页脚数组,可以存放不同的数据类型,而且可以存储大量数据

        32位python的限制是 536870912 个元素,

        64位python的限制是 1152921504606846975 个元素

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

      使用列表:

        1、索引, 切片 (步长)

        2、增删改查

        3、其他操作方法

      用在哪些地方:

        存储大量数据,并且保持原数据类型时,需要列表

        安装顺序,或者按照一定规则存储数据

    列表的使用:

      索引,切片

    l1 = ['wusir', 'alex', '日天', '太白', 100 ,'太白']
    s1 = l1[1]
    print(s1, type(s1))
    i1 = l1[-1]
    print(i1, type(i1))
    l2 = l1[:3]
    print(l2)
    l3 = l1[:-4:-1]
    print(l3)

    增   append, inset, extend

    1、append 只能加一个值,可以是字符串,数字,列表,字典,集合

    l1 = ['wusir', 'alex', '日天', '太白', 100 ,'太白']
    l2 = l1.append(' ')
    print(l1)               #  ['wusir', 'alex', '日天', '太白', 100, '太白', ' ']

    往列表中间加值: 

    name_list = []
    while 1:
        username = input('请输入姓名:  ').strip()
        if username.upper() == 'Q':
            break
        name_list.append(username)
    print(name_list)

    2、inset

    l1 = ['wusir', 'alex', '日天', '太白', 100 ,'太白'] 
    l1.insert(1, [1,  2,  3, 44])           # 索引+ 值(可以是任何数据类型)      
    print(l1)                                     

    3、extend 

    extend 迭代追加,如果是字符串,则将字符串的每一个字符,追加至列表。如果是字典,则只增加key到列表中

    l1 = ['wusir', 'alex', '日天']                                                    
    l1.extend('abc')              #  ['wusir', 'alex', '日天', 'a', 'b', 'c']         
    l1.extend(['alex', 'echo'])     #['wusir', 'alex', '日天', 'alex', 'echo']        
    l1.extend({'name': 'echo', 'age': 18})   #['wusir', 'alex', '日天', 'name', 'age']
    print(l1)                                                                       

    删:   pop,remove,clear,del

     pop:  只能根据索引取值,超出范围会报错

    l1 = ['wusir', 'alex', '日天']
    ret = l1.pop(0)    # 按照索引删除,不支持切片
    print(ret)       # 有返回值
    print(l1)       # ['alex', '日天']

    remove :

    按照值

    l1 = ['wusir', 'alex', '日天', 'wusir']
    l1.remove('wusir')    # 按照值删除列表,一次只能删除一个值
    print(l1)

    clear :清空列表里面的值,保留列表

    l1 = ['wusir', 'alex', '日天', 'wusir']
    l1.clear()
    print(l1)

    del   

    1,按照索引删除单个元素 与pop相同
    2,按照切片删除一部分元素
    3,按照切片(步长)删除一部分元素
    l1 = ['wusir', 'alex', '日天', 'wusir']
    del l1[-1]
    print(l1)
    del l1[-1]
    print(l1)
    del l1[:3]
    print(l1)
    del l1[:3:2]
    print(l1)

    改 :

    1,按照索引改
    2,按照切片改
    3,按照切片(步长)改
    l1 = ['wusir', 'alex', '日天', 'wusir', 'echo', 123]
    l1[0:2] = 'abcd'        # ['a', 'b', 'c', 'd', '日天', 'wusir']
    print(l1)               # 把[0],[1]删除,把'a','b','c','d'添加进去
    l1[:3] = ['al', 'echo']    #['al', 'echo', 'wusir']
    l1[:3:2] = '太白'        #  如果是按步长取值,需要被替换的值必须和替换值个数相等
    print(l1)               # 替换[0],[2]两个值,'太白'也是两个值。如果两边不相等,则报错

    查:

    按照索引,按照切片
    for i in l1:
    print(i)

    其他操作:
    print(len(l1))  # 测试总个数
    count # 计算某个元素出现的个数
    print(l1.count('太白'))
    index 通过元素找索引找第一个就返回,找不到就报错
    sort 排列
    l1 = [2, 7, 6, 5, 1, 8, 9]
    l1.sort()               #正序
    print(l1)              # [1, 2, 5, 6, 7, 8, 9]
    l1.sort(reverse=True)   #倒叙
    print(l1)              # [9, 8, 7, 6, 5, 2, 1]
    l1.reverse()            # 翻转排列
    print(l1)                # [9, 8, 1, 5, 6, 7, 2]

    列表的嵌套:
    l1 = [1, 2, 'taibai', [1, 'alex', 3]]
    l1[2] = l1[2].upper()  # 将'taibai'换成'TAIBAI'  用列表的改
    print(l1)               # [1, 2, 'TAIBAI', [1, 'alex', 3]]
    l1[3].append('老男孩教育')  
    print(l1)                  # [1, 2, 'taibai', [1, 'alex', 3, '老男孩教育']]
    l1[3][1] += 'sb'        # 将'alex' 改成 'alexsb' 用列表的查和改
    print(l1)               # [1, 2, 'taibai', [1, 'alexsb', 3]]

    元组:
    用()表示,里面的数据无法修改 (子数据不能改,孙数据可能可以改)
    用tuple表示
    tu = (1, '太白', True, [1, 2, 3,] ,(1,2,),{'name':'alex'}, {1,2,3})
    支持查,索引,切片,步长

    range :

     ret = range(1, 10)   # 顾头不顾尾 l1 = [1, 2, 3, 4, 5, 6, 7 ,8, 9]

    ret = range(1, 10, 2)
    for i in ret:
        print(i)         # 1  3 5 7 9   支持切片,步长
    #列表中含有别表,字典,打印所有值

    l1 = [1, 2, 3, [44, 55],66, {'name':'echo', 'age': 18}] for i in l1: if type(i) == list: for j in i: print(j) elif type(i) == dict: for x in i: print(x) else: print(i)

  • 相关阅读:
    第05组 Alpha冲刺 (6/6)
    第05组 Alpha冲刺 (5/6)
    第五次作业
    第05组 Alpha冲刺 (4/6)
    第05组 Alpha冲刺 (3/6)
    第05组 Alpha冲刺 (2/6)
    第05组 Alpha冲刺 (1/6)
    第四次作业
    差分约束
    置换群的性质与burnside引理
  • 原文地址:https://www.cnblogs.com/echo2019/p/10170339.html
Copyright © 2020-2023  润新知