• Python 基本数据类型 索引和截取终极理解 步长的理解


    一、标准的数据类型

    Python3 中有六个标准的数据类型:

    • Number (数字) ——不可变数据
    • String (字符串) ——不可变数据
    • Tuple (元组) ——不可变数据
    • List (列表)——可变数据
    • Set (集合)——可变数据
    • Dictionary (字典)——可变数据

    二、Number(数字)

    python3 支持 int、 float、bool、complex
    在python3中,只有一种整数类型 int,表示长整形,并没有long
    这里介绍两个内置函数:
    1、type()

    a, b, c, d = 1, 3.14, True, 1+2j
    print(type(a), type(b), type(c), type(d))
    
    • 1
    • 2

    看一下输出结果:
    在这里插入图片描述
    可以看到 type() 函数可以用来查询变量所指的对象类型
    2、isinstance()

    num = 1
    print(isinstance(num,int))
    
    • 1
    • 2

    看一下输出结果:
    在这里插入图片描述
    两者的区别:

    • type() 不会认为子类是一种父类类型
    • isinstance() 会认为子类是一种父类类型

    注意:
    a、python3中 bool 是 int 的子类,Ture 和 False 可以和数字相加 ,True == 1,False == 0
    在这里插入图片描述
    b、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数
    在这里插入图片描述

    三、String(字符串)

    字符串的截取的语法格式:
    变量[头下标:尾下标]
    索引值以 0 开始,-1 为最后的开始位置:
    用一幅图直观的体现其差异:
    在这里插入图片描述
    这里 索引其实就是找到其对应的下标,而截取是指需要根据当前的坐标去输出内容!
    前提:有完整的尾下标:(str[1:]这种的就不适用)!!!
    从前面截取–> 左闭右开
    从后面截取–> 左开右闭

    用代码实例讲解一下:

    str = 'fancy'
    
    print (str)          # 输出字符串
    print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
    print (str[0])       # 输出字符串第一个字符
    print (str[2:4])     # 输出从第三个开始到第五个的字符  (从前面截取)
    print (str[4:2:-1])  # 输出从第五个开始到第三个的字符,逆序输出,步长为1 (从后面截取)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    四、List(列表)

    列表是写在方括号之间[ ]之间,用逗号分隔开的元素列表。
    列表是python中使用最频繁的数据类型,可以完成大多数集合类的数据结构实现,列表中元素的类型可以不相同,支持数字、字符串甚至列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
    列表的截取的语法格式:
    变量[头下标:尾下标]
    老规矩,文图并茂:
    在这里插入图片描述
    通过这两幅图,就可以对字符串和列表的截取彻底掌握。
    与字符串不同的是,列表中的元素是可以改变的:

    str = [ 1, 2, 3, 4, 5 ]
    str[2:4]=[-1,-2]
    print(str)
    
    • 1
    • 2
    • 3

    看一下输出结果:
    在这里插入图片描述
    可以看到在上面替换了之后,列表中的元素就发生了变化
    python列表截取第三个参数,参数作用是截取的步长,步长决定了输出的间隔!
    在这里插入图片描述
    这里步长为2,所以输出结果为 ‘a’ ‘c’
    注意:如果步长为负数,则代表逆序

    str=['F','a','n','c','y']
    print(str[::-1])
    
    • 1
    • 2

    看一下运行结果:
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/c2cc438e250547618a6ec9bf074d8f9b.png

    五、Tuple(元组)

    元组与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里面,元素用逗号隔开。

    tuple = ( 'hello', 456, 3.14, 'fancy', 61.5)
    tinytuple = (666, 'world')
    
    print (tuple)             # 输出完整元组
    print (tuple[0])          # 输出元组的第一个元素
    print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
    print (tuple[2:])         # 输出从第三个元素开始的所有元素
    print (tinytuple * 2)     # 输出两次元组
    print (tuple + tinytuple) # 连接元组
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    看一下输出结果:
    在这里插入图片描述
    注意:构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

    tup1 = ()    # 空元组
    tup2 = (1,) # 一个元素,需要在元素后添加逗号
    
    • 1
    • 2

    六、Set(集合)

    集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。它的基本功能是进行成员关系测试和删除重复元素。
    注意:可以使用大括号 { } 或者 set() 函数创建集合,创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
    创建格式:

    #格式一
    student = {value1,value2,...}
    #格式二
    set(value)
    
    • 1
    • 2
    • 3
    • 4

    写一个简单的代码巩固一下:

    sites = {'zhangsan', 'lisi', 'wangmazi', 'wangwu', 'zhaoliu', 'chenqi'}
    
    print(sites)   # 输出集合,重复的元素被自动去掉
    
    # 成员测试
    if 'hello' in sites :
        print('hello 在集合中')
    else :
        print('hello 不在集合中')
    
    # set可以进行集合运算
    a = set('abracadabra')
    b = set('alacazam')
    
    print(a)
    print(a - b)     # a 和 b 的差集
    print(a | b)     # a 和 b 的并集
    print(a & b)     # a 和 b 的交集
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    七、Dictionary(字典)

    列表是有序的对象集合,字典是无序的对象集合
    两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
    字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
    键(key)必须使用不可变类型。
    在同一个字典中,键(key)必须是唯一的。
    实例:

    dict = {}
    dict['one'] = "北京"
    dict[2]     = "上海"
    
    tinydict = {'name': 'fancy','code':1, 'age': '20'}
    
    print (dict['one'])       # 输出键为 'one' 的值
    print (dict[2])           # 输出键为 2 的值
    print (tinydict)          # 输出完整的字典
    print (tinydict.keys())   # 输出所有键
    print (tinydict.values()) # 输出所有值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果如下:
    在这里插入图片描述
    注意:

    • 字典是一种映射关系,它的元素是键值对
    • 字典的关键字必须为不可变类型,且不能重复
    • 创建字典使用 { }
  • 相关阅读:
    C++ 学习系列 -- 智能指针 make_shared 与 make_unique
    文件挂载nas挂载
    【21天学习挑战赛—经典算法】希尔排序
    call apply bind 区别与联系
    go实战(2)-hello,world与包基础(2)-模块基础
    【论文笔记】基于预训练模型的持续学习(Continual Learning)(增量学习,Incremental Learning)
    代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和
    爬虫学习笔记 -- 常见名词解释
    Linux下搭建nginx服务器
    关于在 Angular 应用里重复调用 RouterModule.forRoot(ROUTES) 的讨论
  • 原文地址:https://blog.csdn.net/fancynthia/article/details/126293503