Python3 中常见的数据类型

目录

  • 数字(Number)
    • 总结
  • 字符串(String)
    • 字符串运算符
    • 字符串格式化
    • 字符串的截取
    • 总结
  • List(列表)
    • 更新列表
    • 删除列表元素
    • 列表函数&方法
    • 总结
  • Tuple(元组)
    • 修改元组
    • 删除元组
    • 总结
  • Set(集合)
  • Dictionary(字典)
    • 修改字典
    • 删除字典元素
    • 内置函数&方法
    • 总结
  • 几种常见类型的总结与对比
    • python中的有序和无序
    • 对比

P y t h o n 3 中常见的数据类型 { N u m b e r (数字) { 整数 布尔型 浮点数 复数 S t r i n g (字符串) b o o l (布尔类型) L i s t (列表) T u p l e (元组) S e t (集合) D i c t i o n a r y (字典) Python3 中常见的数据类型\begin{cases} Number(数字) \begin{cases} 整数 \\ 布尔型 \\ 浮点数 \\ 复数 \\ \end{cases}\\ String(字符串) \\ bool(布尔类型) \\ List(列表)\\ Tuple(元组) \\ Set(集合) \\ Dictionary(字典) \\ \end{cases} Python3中常见的数据类型 Number(数字) 整数布尔型浮点数复数String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dictionary(字典)

数字(Number)

python中数字有四种类型:整数、布尔型、浮点数和复数。

  • int(整数),如1,只有一种整数类型int,表示为长整型,没有python2中的 Long。
  • bool(布尔),如True。
    布尔类型可以和逻辑运算符一起使用,包括and、or和not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值
  • float(浮点数),如1.23、3E-2
  • complex(复数),如1 + 2j、 1.1+2.2j
    复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型
  • 内置的 type() 函数可以用来查询变量所指的对象类型
    在这里插入图片描述
  • 此外还可以用 isinstance 来判断
  • isinstance和type的区别在于:
    1.type()不会认为子类是一种父类类型。
    2.isinstance()会认为子类是一种父类类型。

!注意:
1.Python3中,bool是int的子类,True和False可以和数字相加, True==1、False==0 会返回True,但可以通过is来判断类型。
2.在Python2中是没有布尔型的,它用数字0表示False,用1表示True。

总结

  1. Python可以同时为多个变量赋值,如a, b = 1, 2。
  2. 一个变量可以通过赋值指向不同类型的对象。
  3. 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
  4. 在混合计算时,Python会把整型转换成为浮点数。

字符串(String)

  • Python中单引号 ’ 和双引号 " 使用完全相同。
  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
  • Python没有单独的字符类型,一个字符就是长度为1的字符串。

字符串运算符

字符串格式化

  • 在Python中,字符串格式化使用与C中sprintf函数一样的语法:
    print("我叫 %s 今年 %d 岁!" % ('小明', 10))
    // 输出结果:我叫 小明 今年 10 岁!

辅助指令:

字符串的截取

  • Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。


  • 字符串可以用+运算符连接在一起,用*运算符重复。

  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

Python
索引值从前往后数012345
索引值从后往前数-6-5-4-3-2-1
从前往后截取0:1:2:3:4:5
从后往前截取-6:-5:-4:-3:-2:-1:
str = 'Python'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:4])     # 输出从第三个开始到第四个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串


Python使用反斜杠\转义特殊字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串:

另外,反斜杠()可以作为续行符,表示下一行是上一行的延续。也可以使用 “”“…”“” 或者 ‘’‘…’‘’ 跨越多行。

//例如:

total = item_one + \
        item_two + \
        item_three

'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""

!注意:与C字符串不同的是,Python字符串不能被改变。向一个索引位置赋值,比如word[0]='m’会导致错误。

总结

  1. 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
  2. 字符串可以用+运算符连接在一起,用*运算符重复。
  3. Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  4. Python中的字符串不能改变。

List(列表)

  • Python列表是一种有序、可变、允许重复元素的数据结构。它是Python中最常用的数据类型之一,也被称为数组。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
  • 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:变量[头下标:尾下标]
(索引值以0为开始值,-1为从末尾的开始位置。)

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表


Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引1到索引4的位置并设置为步长为2(间隔一个位置)来截取字符串:

def reverseWords(input):
     
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")
 
    # 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1]
 
    # 重新组合字符串
    output = ' '.join(inputWords)
     
    return output
 
if __name__ == "__main__":
    input = 'I like runoob'
    rw = reverseWords(input)
    print(rw)

//输出结果为:runoob like I

更新列表

!注意:与Python字符串不一样的是,列表中的元素是可以改变的

可以对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)

//输出结果-> 更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']

删除列表元素

使用del语句来删除列表的的元素

list = ['Google', 'Runoob', 1997, 2000]
del list[2]
print ("删除第三个元素 : ", list)

//输出结果-> 删除第三个元素 :  ['Google', 'Runoob', 2000]

列表函数&方法

Python包含以下函数:

Python包含以下方法:

总结

  1. List写在方括号之间,元素用逗号隔开。
  2. 和字符串一样,list可以被索引和切片。
  3. List可以使用+操作符进行拼接。
  4. List中的元素是可以改变的。

Tuple(元组)

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

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')

print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组


构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号(不加逗号,类型为整型)

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

// 输出结果:(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
del tup

总结

  1. 与字符串一样,元组的元素不能修改。
  2. 元组也可以被索引和切片,方法一样。
  3. 注意构造包含0或1个元素的元组的特殊语法规则。
  4. 元组也可以使用+操作符进行拼接。

Set(集合)

  • Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
  • 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
  • 在Python中,集合使用大括号{}表示,元素之间用逗号分隔。
  • 另外,也可以使用set()函数创建集合。

!注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:parame = {value01,value02,...}或者set(value)

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu','Facebook'}

print(sites)   # 输出集合,重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素

=

Dictionary(字典)

  • 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。d = {key1 : value1, key2 : value2, key3 : value3 }
  • 键(key)必须使用不可变类型。
  • 在同一个字典中,键(key)必须是唯一的。
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"

tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}

print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值


构造键值对序列的三种方法:

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息
 
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

'''
输出结果:
tinydict['Age']:  8
tinydict['School']:  菜鸟教程
'''

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

内置函数&方法

Python字典包含了以下内置函数:

Python字典包含了以下内置方法:

总结

  1. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
  2. 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

几种常见类型的总结与对比

python中的有序和无序

在Python中,"有序"和"无序"通常用来描述数据结构(如列表、元组、集合、字典)的特性。

  • 有序(Ordered):
    1.列表(List): 列表是有序的,这意味着列表中的元素按照它们被添加的顺序进行存储,并且可以通过索引按顺序访问。
    2.元组(Tuple): 元组也是有序的,元素按照它们被定义的顺序进行存储,并且可以通过索引按顺序访问。

  • 无序(Unordered):
    1.集合(Set): 集合是无序的,这意味着集合中的元素没有特定的顺序。你不能通过索引来访问集合中的元素。
    2.字典(Dictionary): 字典的键值对是无序的,这意味着字典中的键和值没有特定的顺序。从Python 3.7开始,字典的实现保持了元素的插入顺序,因此可以说字典是有序的。在Python 3.6及之前版本,字典是无序的。

对于输出结果而言,有序的数据结构(如列表或元组)进行数据输出时,数据的输出顺序是按照输入的顺序显示的;有序的数据结构(字典和集合)进行数据输出时,输出的顺序是不确定的,并且可能在不同的运行中发生变化。
注意:Python 3.7及以后版本中,字典的输出是有序的。

对比

字符串List列表Tuple元组Set集合Dictionary字典
表示方式用单引号 ’ 或双引号 " 括起来写在方括号 [ ] 之间、元素之间用逗号分隔开写在小括号 ( ) 里,元素之间用逗号隔开使用大括号 { } 表示,元素之间用逗号分隔字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合
数据结构特点有序、不可变、允许重复元素有序、可变、允许重复元素有序、不可变、允许重复元素无序、可变、不允许重复元素 (因为集合是基于哈希表实现的,哈希表要求元素是唯一的)无序、可变、存储键值对、允许重复的值 (键必须是唯一的,但值可以重复)
是否可变数据×××
注意点单引号 ’ 和双引号 " 使用完全相同正向截取时,开始位置为0;逆向截取时,开始位置为-1构造0个或1个元素的元组的特殊方法空集合必须用 set() 而不是 { }创建一个空字典为dict = {}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247949.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开启虚拟世界的新篇章

近年来,随着科技的迅猛发展,人们生活方式的改变也日益显著。而其中一个最引人注目的变化便是数字人直播的兴起。数字人直播以其独特的魅力,成为了当今社会中备受关注的热门话题。本文将从数字人直播的定义、应用领域以及未来发展等方面&#…

一个程序员的养生指南

文章目录 一个程序员的养生指南 一个程序员的养生指南 大学毕业后几年,体重长得比工作年限还快,不到3年,增重将近20公斤,也不知道咋做到的。直到2019年年底,已经到了走路喘气,爬楼胸闷,下蹲头晕…

文献速递:PET-影像组学专题—18F-FDG PETCT影像学的影像组学模型用于预测早期宫颈鳞状细胞癌无病生存率

文献速递:PET-影像组学专题—18F-FDG PET/CT影像学的影像组学模型用于预测早期宫颈鳞状细胞癌无病生存率 01 文献速递介绍 宫颈癌是女性死亡的主要原因之一。在早期宫颈癌中,根治性手术加/不加个体化辅助化疗放疗是指南推荐的治疗选择,然而…

如何使用蜘蛛池蚂蚁SEO

​蜘蛛池是一种利用搜索引擎爬虫进行推广营销的方式。它的核心是建立一个能够吸引搜索引擎爬虫的网站群,这些网站能够产生大量的优质内容,并形成一个巨大的网站群,从而吸引更多的搜索引擎爬虫。 如何联系蚂蚁seo? baidu搜索&…

AI人工智能在建筑智能化工程设计的应用

AI人工智能在建筑智能化工程设计的应用 相关政策: 建筑智能化工程设计资质是为了合理设计各种智能化系统,让它们有机地结合成为有效的整体作用。在工程设计标准中,智能化资质设计全称为建筑智能化系统专项设计资质。企业一旦具备智能化设计资…

PFA容量瓶应用工业制造领域PFA定容瓶精确测量的重要性

容量瓶是保证科学、医学和工业等各个领域精确测量的重要工具。这些专门的容量瓶被设计用来在特定的温度下保持精确的液体体积,使它们成为在工作中需要高精确度的专业人士不可或缺的工具。在这份容量瓶终极指南中,今天我们来探讨下这些仪器的重要性&#…

蓝牙物联网智慧工厂解决方案

蓝牙物联网智慧工厂解决方案是一种针对工厂管理的智能化解决方案,通过蓝牙、物联网、大数据、人工智能等技术,实现工厂人员的定位、物资的定位管理、车间的智慧巡检、智慧安防以及数据的可视化等功能。 蓝牙物联网智慧工厂解决方案构成: 人员…

GD32F4标准外设库

学习目标 了解标准库来源熟悉模板搭建流程掌握在已有模板基础下进行开发学习内容 标准外设库获取 标准固件库获取我们可以从官网进行下载。 下载链接:兆易创新GigaDevice-资料下载兆易创新GD32 MCU 找到 GD32F4xx Firmware Library 这个压缩包 下载完成后,进行解压,解压…

人工智能中的顺序学习:概念、应用和未来方向

一、介绍 人工智能 (AI) 中的顺序学习是一个关键研究领域,近年来引起了人们的极大兴趣。它指的是人工智能系统从数据序列中学习的能力,其中数据点的顺序至关重要。本文将探讨人工智能中顺序学习的概念、其重要性、应用、方法、挑战…

基于3D-CGAN的跨模态MR脑肿瘤分割图像合成

3D CGAN BASED CROSS-MODALITY MR IMAGE SYNTHESIS FOR BRAIN TUMOR SEGMENTATION 基于3D-CGAN的跨模态MR脑肿瘤分割图像合成背景贡献实验方法Subject-specific local adaptive fusion(针对特定主题的局部自适应融合)Brain tumor segmentation model 损失…

Qt容器QScrollArea小部件的滚动视图

​# QScrollArea 平台:linux、windows、mac皆可,Qt版本:Qt5.14.2 QScrollArea是Qt框架中用于提供可滚动视图区域的小部件。它通常被用来包含一个较大的内容区域,并且可以在其中嵌入其他小部件。下面是一些常用的QScrollArea函数: 1. `setWidget(QWidget *widget)`: 设置在…

LeetCode 每日一题 Day 12 (Hard)|| 二维前缀和二维差分

2132. 用邮票贴满网格图 给你一个m x n的二进制矩阵 grid ,每个格子要么为 0 (空)要么为 1 (被占据)。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩阵中,且满足以下 限制 和 …

【每次启动wsl时自动更新ip】

每次启动wsl时自动更新ip 在windows中使用wsl时,每次启动wsl后发现其ip都会改变,这样的话如果想通过vscode的Remote-SSH插件打开代码编辑器,就需要手动更新ssh配置文件,极为不便,所以考虑使用一种优雅的方式&#xff0…

Linux(22):X Window 设定介绍

X Window System X Window System 是个非常大的架构,他还用到网络功能。也就是说,其实 X 窗口系统是能够跨网络与跨操作系统平台的。 X Window系统最早是由 MIT (Massachusetts Institute of Technology,麻省理工学院) 在1984年发展出来的&…

在Sqlite中通过Replace来实现插入和更新

你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导…

【Spring Boot】内网穿透实现远程调用调试

文章目录 1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址 4.…

DevOps搭建(六)-安装Maven详细步骤

1、官网下载 下载地址: Maven – Download Apache Maven 2、上传压缩包到服务器 把下载好的压缩包上传到服务器上。 3、解压压缩包 解压压缩包到安装目录/usr/local/ tar -zxvf apache-maven-3.9.3-bin.tar.gz -C /usr/local/ 切换到/usr/local目录下ls命令看…

Linux 常用命令----mktemp 命令

文章目录 基本用法实例演示高级用法注意事项 mktemp 命令用于创建一个临时文件或目录,这在需要处理临时数据或进行安全性测试时非常有用。使用 mktemp 可以保证文件名的唯一性,避免因文件名冲突而导致的问题。 基本用法 创建临时文件: 命令 mktemp 默认…

使用axios的详细图文教程

介绍 当我们使用Vue开发项目时,会发送Ajax请求服务器接口,会对axios封装。 Axios(ajax i/o system)不是一种新技术,本质上也是对原生XHR(XMLHttpReques)的封装,只不过它是基于Pr…

wpf devexpress如何使用AccordionControl

添加一个数据模型 AccordionControl可以被束缚到任何实现IEnumerable接口的对象或者它的派生类(例如IList,ICollection) 如下代码例子示范了一个简单的数据模型使用: using System.Collections.Generic;namespace DxAccordionGettingStart…