zoukankan      html  css  js  c++  java
  • Python数据类型-03.序列-列表和元组

    本文主要记录关于Python序列中列表和元组的定义特点和常用方法

    1.序列(sequence)

    1.1.序列的定义

    序列是一组有顺序的元素的集合(其实是是对象的集合,后期会引入“对象”这个概念)
    序列包含列表和元组

    1.2.序列的特点

    1)基本的数据类型,都可以作为序列的元素,各个元素由逗号分隔
    2)可以由一种或多种元素构成,也可以没有任何元素,空列表,空元组
    3)构成序列的元素可以是另一个序列

    1.3.序列的分类(2种)

    1)列表(list):使用中括号"[]"定义,列表中的的各个元素可以变更
    2)元组(tuple):或者成为定值表,使用小括号"()"定义,元祖中的元素不可变更

    2.列表(list)

    2.1.列表的创建(2种方式)

    names = ["aaa","bbb","ccc","ddd","eee"]
    或者
    names = list(["aaa","bbb","ccc","ddd","eee"])
    print("打印列表:",names)
    print(name,type(name))
    --->["aaa","bbb","ccc","ddd","eee"] <class 'list'>

    实例1:一个序列作为另一个序列的元素

    s1 = [1,[3,4,5]]

    实例2:定义一个空序列

    s2 = []

    2.2.列表特点

    2.3.列表的切片(列表中元素的引用)

    列表中对象的索引:
    1)切片时顾头不顾尾(以正数开头不计算最右边的)
    2)左边从0开始越往右越大
    3)右边从-1开始,越往左越小

    实例演示:

    names = ["aaa","bbb","ccc","ddd","eee"]

    2.3.1.取单个元素

    1) 打印第1个

    print(names[0])

    2) 打印最后1个,倒数第一个(从右往左数第1个)

    print(names[-1])

    3) 一次取出某几个,第1个和第3个

    print(names[0],names[2])
    print(names[0,2])                # 错误的写法

    2.3.2.取多个元素: [开头:结尾:步长]

    1) 范围引用

    print(names[0:3])              # 打印从开始到第3个对象
    print(names[:3])                 # 打印从开始到第3个对象,开头的0可以省略
    print(names[-2:])              # 最后2个,从右往左数2个,从倒数第2个到最后

    # 从开始到倒数第3个,不计算-3位置的(从左往右数,不计算最后的)

    print(names[0:-3])
    print(names[:-3])                  # 简写

    # 打印从第2个到最后一个

    print(names[1:])                 # 包含最后一个,默认什么都不加表示到最后一个
    print(names[1:4])                # 列表元素是有限的可以直接写下标
    print(names[1:-1])             # 注意:-1不包含最后一个,只取到倒数第二个

    # 倒数第3个到倒数第2个,是从左往右看

    print(names[-3:-1])
    print(names[-1:-3])             # 错误写法:从右往左第1个到第3个

    2)间隔引用,步长,默认步长为1,步长是有方向的,从左向右

    names = ["aaa","bbb","ccc","ddd","eee"]
    print(names[1::1])              # 第二个到最后一个连续取
    print(names[1::2])             # 从左到右隔一个去取步长为2

    3)反向引用:步长的负数表示反向取(从右向左取)

    print(names[1::-1])             # 从右向左依次取,最后一个到第二个

    # 从右向左隔一个去取

    print(names[1::-2])             # 步长的负数表示反向取(从右向左取)

    从上面可以看到,在范围引用的时候,如果写明上限(开头),那么这个上限本身不包括在内。

    2.3.3.嵌套列表数据引用

    思路:分隔取用

    2.4.列表的常用方法

    增删改查,排序

     1)list.append() # 增加值

    names.append("fff")              # 把fff追加到最后
    names.insert(1,"ggg")            # 把ggg插入到第2个位置
    names.insert(3,"hhh")            # 把hhh插入到第4个位置

    2)列表内容修改

    names[2] = 'kkk'
    names['bbb'] = 'qqq'              # 错误的写法
    names[开始:结束] = [a,b,c]

    3)list.remove() # 删除列表中指定的数据

    remove是根据内容删除,删除后返回剩余的内容

    names.remove("ggg")             # 删除ggg,

    4)list.pop() # 删除列表中指定的数据数据

    pop是根据索引删除内容,默认删除最后一个,删除后返回的是被删除的内容

    names.pop()                  # 默认删除最后一个
    names.pop(1)                  # 删除1号位置的数据
    del names[1]                  # 删除1号位置的数据,也就是ggg

    5)list.clear() # 清空列表

    names.clear()
    print(names)

    6)list.extend() # 扩展列表

    name2 = [1,2,3,4]
    names.extend(name2)
    print("extend扩展:",names)

    7)list.count  # 统计列表中某个对象出现的次数

    names.append('ccc')
    print("count统计:",names.count('ccc'))

    8)list.index()  # 根据内容找位置

    查询对象的索引(位置),查询并显示目标内容

    print("index索引:",names.index('ggg'))
    print(names[names.index('ggg')])

    9)list.reverse() # 反转

    将已有对象列表反向输出

    names.reverse()
    print("reverse反转:",names)

    10) list.sort() # 排序

    排序规则是按照ASCII码的顺序排列的

    name3 = ["aaa","1bbb","!ccc","#ddd","eee","Cccc"]
    name3.sort()
    print("sort排序:",name3)

    默认排序数字是从小到大,怎样按照从大到小排序呢?

    实例如下:

    x = [4, 6, 2, 1, 7, 9]
    x.sort()
    print(x)                     # 默认排序数字是从小到大

    # 方法1:

    x.reverse()       # 正向排序然后取返
    print(x)

    # 方法2:

    x.sort(reverse=True)    # 直接修改取返参数
    print(x)

    11)list.copy() # 复制列表

    name4 = names.copy()
    print("copy复制列表:",name4)

    12)身份判断

    type(name) is list
    --->True

    # 拓展:判断某个元素在不在列表里的方法:

    print("aaa" in names)             # 判断对象是否在列表里
    print(names.count("aaa"))         # 判断对象出现的次数

    3.元组(tuple)

    3.1.元组定义:

    1)元组又称为只读列表,用于存储一组数据,其中的数据只可以被查询,不能被修改
    2)元组写在小括号”()“里,元素之间用逗号隔开。
    3)元组里面的元素本身不可变,但它可以包含可变的对象,比如list列表。
    4)字符串是一种特殊的元组,可以执行元组的相关操作。
    5)包含0个或1个元素的元组比较特殊:

    tuple1 = ()                  # 空元组
    tuple2 = (20,)               # 一个元素,需要在元素后添加逗号

    3.2.元组的应用:

    1)告诉别人此处数据不可修改,或者对于一些数据我们不想被修改,可以使用元组;
    2)元组可以在映射(和集合的成员)中当作键使用,而列表则不行;
    3)元组作为很多内建函数和方法的返回值存在。
    4)数据库连接配置信息

    3.3.元组的创建:

    ages = (11, 22, 33, 44, 55)
    或
    ages = tuple((11, 22, 33, 44, 55))
    print(ages,type(ages))
    --->(11, 22, 33, 44, 55) <class 'tuple'>

    3.3.常用的功能方法

    1)元组可以切片,切片是取数据操作
    2)元祖只有两个方法.count()和.index(),参考列表的方法

    完毕,呵呵呵呵

  • 相关阅读:
    live-server
    vue-插槽
    100%的背影
    Luogu P3243 菜肴制作
    CF512E Fox And Polygon
    BZOJ2523/LOJ2646 聪明的学生
    Luogu P3959 宝藏
    Luogu P2280 激光炸弹
    ACAG 0x02-8 非递归实现组合型枚举
    ACAG 0x02-4 费解的开关
  • 原文地址:https://www.cnblogs.com/tssc/p/9362804.html
Copyright © 2011-2022 走看看