美文网首页
序列,列表,迭代,range

序列,列表,迭代,range

作者: 码农一号已就位 | 来源:发表于2020-07-18 16:13 被阅读0次

    @[TOC]

    序列

    概念

    • 序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所 有的数据在序列当中都有⼀个唯⼀的位置(索引)并且序列中的数据会按照 添加的顺序来分配索引
    • 数据结构指计算机中数据存储的⽅式

    分类

    • 可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
    • 不可变序列(序列中的元素不能改变):例如 字符串(string)元组(tuple)

    列表 List

    列表内的内容是有序的
    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依次类推,最后一个是

    创建

    list1 = [1,'2',3,'4']
    list2 = [1,2,3,4]
    list3 = ['spam', 'Spam', 'SPAM!']
    

    访问列表中的值

    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

    list1 = ['physics', 'chemistry', 1997, 2000];
    list2 = [1, 2, 3, 4, 5, 6, 7 ];
    print (list1[0])
    print (list2[1:5])
    

    以上实例输出结果:

      physics
      [2, 3, 4, 5]
    

    切片

    列表[起始 : 结束 : 步⻓]

    • 起始即起始索引值
    • 结束即结束的索引值
    • 步长即间隔数(默认为1)
      • 可以省略三个元素
        • 如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
        • 如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结 束的元素
        • 如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀ 个元素
          例如
    list1 = [1,2,3,4,5,6]
    print(list1[0:4:2]) #0开始,到索引值4结束,间隔为2
    print(list1[0:5])  #0开始,到索引值5结束,间隔默认1
    print(list1[::2])  #从头到尾,间隔数为2
    print(list1[:5])  #从头到索引值5结束,间隔数默认1
    print(list1[1:])  #从索引值1开始到尾,间隔数默认为1
    print(list1[2::2])  #从索引值2开始到尾,间隔数为2
    
    [1, 3]
    [1, 2, 3, 4, 5]
    [1, 3, 5]
    [1, 2, 3, 4, 5]
    [2, 3, 4, 5, 6]
    [3, 5]
    

    append

    在列表末尾增加元素
    例如:

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1.append(7)
    print('修改后',list1)
    
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [1, 2, 3, 4, 5, 6, 7]
    

    insert

    insert(arg1,arg2) 像列表指定位置插⼊⼀个元素 参数1:要插⼊的位置 参数 2:要插⼊的元素
    例如:

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1.insert(1,5) #1是要插入的位置,5是插入的元素
    list1.insert(5,100)
    print('修改后',list1)
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [1, 5, 2, 3, 4, 100, 5, 6]
    

    extend

    extend(iterable) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素 添加到列表中) 参数需要传递⼀个序列
    例如:

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1.extend([7,8,9,10])
    print('修改后',list1)
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

    del

    删除列表中的指定索引值的元素

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    del list1[-1] #删6
    del list1[1:3] #删索引值1到三。2,3
    print('修改后',list1)
    

    结果

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [1, 4, 5]
    

    pop

    pop() 根据索引删除并返回指定元素
    例如

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1.pop(2) #删除索引值为2的,3
    print('修改后',list1)
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [1, 2, 4, 5, 6]
    

    remove

    remove() 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)
    例如

    list1 = [1,2,3,4,5,6,2]
    print('修改前',list1)
    list1.remove(2) 
    print('修改后',list1)
    

    通过索引和切片改

    • 可以直接通过索引改变列表元素内容
    • 通过切⽚来修改(起始就是给切⽚的内容重新赋值,但是赋值的内容必须是⼀ 个序列)
    • 当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致
      例如:
    ist1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1[0] = 7
    list1[1:3]=10,11,12,13 #可以将少的元素改为多个元素达到增加效果
    
    print('修改后',list1)
    list1[0:6:2] = 1,3,5
    print('修改后后',list1) #当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致 否则报错
                            # Traceback (most recent call last)
                            
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [7, 10, 11, 12, 13, 4, 5, 6]
    修改后后 [1, 10, 3, 12, 5, 4, 5, 6]
    

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [7, 10, 11, 12, 13, 4, 5, 6]
    修改后后 [1, 10, 3, 12, 5, 4, 5, 6]

    reverse

    reverse翻转列表
    例如:

    list1 = [1,2,3,4,5,6]
    print('修改前',list1)
    list1.reverse()
    print('修改后',list1)
    

    结果:

    修改前 [1, 2, 3, 4, 5, 6]
    修改后 [6, 5, 4, 3, 2, 1]
    

    sort

    sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序,默认为正序,可以通过revers来控制升序或者降序
    reverse: True降序;False 升序
    例如:

    list1 = [9,5,8,6,7,3,2]
    print('修改前',list1)
    list1.sort()
    print('修改后升序',list1)
    list1.sort(reverse=True)
    print('修改后降序',list1)
    

    结果:

    修改前 [9, 5, 8, 6, 7, 3, 2]
    修改后升序 [2, 3, 5, 6, 7, 8, 9]
    修改后降序 [9, 8, 7, 6, 5, 3, 2]
    

    通用操作

      • 可以将两个列表拼接成⼀个列表
      • 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘 法运算)
    • in 和 not in in⽤来检查指定元素是否在列表当中
    • not in ⽤来检查指定元素是否不在列表当中
    • len() 获取列表中元素的个数
    • max() 获取列表中最⼤值
    • min() 获取列表中最⼩值
    • list.index(x, start, end)获取列表中某个元素索引值
      • 第⼀个参数 获取指定元素在列表中的位置
      • 第⼆个参数 表示查找的起始位置
      • 第三个参数 表示查找的结束位置
    • list.count(x) 统计指定元素在列表中出现的次数
      例如:
    list1 = [1,2,3,4,5,6,6,6,7]
    list2 = [8,9,10]
    print(list1+list2)
    print(list2*2)
    print(list2 in list1)
    print(list2 not in list1)
    print(len(list1))
    print(max(list1))
    print(min(list1))
    print(list1.index(5,0,7))
    print(list1.count(6))
    

    结果:

    [1, 2, 3, 4, 5, 6, 6, 6, 7, 8, 9, 10]
    [8, 9, 10, 8, 9, 10]
    False
    True
    9
    7
    1
    4
    3
    

    迭代for in

    语法:

    for 变量 in 序列(遍历的规则):
         代码块
    
    list1 = [1,2,3,4,5,6,6,6,7]
    for i in list1:
        print(i)
    
    1
    2
    3
    4
    5
    6
    6
    6
    7
    

    range

    常常与for in 配合使用
    使用【range(n)】就会生成一个从【0】到【n-1】的整数序列。
    range(开始,结束,步长) (包括开始,不包括结束,步长就是间隔数)
    例如:

    for i in range(5):
        print(i)
    print('************')
    for i in range(0,10,2):
        print(i)
    

    结果:

    0
    1
    2
    3
    4
    ************
    0
    2
    4
    6
    8
    

    相关文章

      网友评论

          本文标题:序列,列表,迭代,range

          本文链接:https://www.haomeiwen.com/subject/fhkfkktx.html