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 outputif __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 = {}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D点云广义零样本分类的递归循环对比生成网络笔记

1 Title Contrastive Generative Network with Recursive-Loop for 3D point cloud generalized zero-shot classification(Yun Hao, Yukun Su, Guosheng Lin, Hanjing Su, Qingyao Wu)【Pattern Recognition】 2 Conclusion This work aims to facilitate research on 3D poi…

【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.…

机器学习入门笔记

文章目录 背景具体步骤1.环境搭建2.写个demo1.数据处理2.分割数据集3.用模型训练数据,并得到预测结果4.绘制结果5.评估 背景 最近学习了一些关于机器学习的内容,做个笔记。 具体步骤 1.环境搭建 需要用到的工具:pycharm,anaco…

如何了解蜘蛛池蚂蚁SEO

蜘蛛池是一种基于搜索引擎优化的技术手段,通过模拟蜘蛛爬行行为来提高网站在搜索引擎中的排名,从而增加网站的流量和曝光率。 编辑搜图 如何联系蚂蚁seo? baidu搜索:如何联系蚂蚁SEO? baidu搜索:如何联…

【Pytorch】Fizz Buzz

文章目录 1 数据编码2 网络搭建3 网络配置,训练4 结果预测5 翻车现场 学习参考来自: Fizz Buzz in Tensorflowhttps://github.com/wmn7/ML_Practice/tree/master/2019_06_10Fizz Buzz in Pytorch I need you to print the numbers from 1 to 100, excep…

牛客网BC92逆序输出

答案&#xff1a; #include <stdio.h>int main() {int i0, j0;int arr[10]{0};for(i0;i<10;i) //将10个整数存进数组里{scanf("%d",&arr[i]);}for(j9;j>0;j--) //逆序打印{printf("%d ",arr[j]); //若要求最后一个数后面不打印空格…

【Hive】——CLI客户端(bin/beeline,bin/hive)

1 HiveServer、HiveServer2 2 bin/hive 、bin/beeline 区别 3 bin/hive 客户端 hive-site.xml 配置远程 MateStore 地址 XML <?xml version"1.0" encoding"UTF-8" standalone"no"?> <?xml-stylesheet type"text/xsl" hre…

C# WPF上位机开发(利用tcp/ip网络访问plc)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 c# wpf如果是用来开发非标上位机的&#xff0c;那么和plc的通信肯定是少不了的。而且&#xff0c;大部分plc都支持modbus协议&#xff0c;所以这个…

neo4j安装报错:neo4j.bat : 无法将“neo4j.bat”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

neo4j安装报错&#xff1a; neo4j.bat : 无法将“neo4j.bat”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确 保路径正确&#xff0c;然后再试一次。 解决办法&#xff1a; 在环境变量中的&#xff0c;用户…

Shopee ERP:提升电商管理效率的终极解决方案

Shopee ERP&#xff08;Enterprise Resource Planning&#xff0c;企业资源规划&#xff09;是一款专为Shopee卖家设计的集成化电商管理软件。通过使用Shopee ERP系统&#xff0c;卖家可以更高效地管理他们的在线商店&#xff0c;实现库存管理、订单处理、物流跟踪、财务管理、…

优先考虑类型安全的异构容器

在Java中&#xff0c;异构容器是一种可以存储不同类型元素的容器。为了提高类型安全性&#xff0c;可以使用泛型和类型安全的异构容器&#xff0c;而不是传统的非类型安全容器。下面是一个例子&#xff0c;演示如何使用类型安全的异构容器 import java.util.HashMap; import j…

alpine linux 之嵌入式搭建

目录 序启动修改源安装 openssh设置开机网络 ip参考 序 最近发现了 alpine linux 这个文件系统&#xff0c;这是一个基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。 下载了他的文件系统&#xff0c;只有 3M 多的压缩包&#xff0c;非常适合嵌入式系统。 地址…

AIGC专题报告:ChatGPT的工作原理

今天分享的AIGC系列深度研究报告&#xff1a;《AIGC专题报告&#xff1a;ChatGPT的工作原理》。 &#xff08;报告出品方&#xff1a;省时查&#xff09; 报告共计&#xff1a;107页 前言 ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西&#xff0c;这非常了不…

计算机毕业设计 基于SpringBoot的日常办公用品直售推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

AWTK 串口屏开发(2) - 数据绑定高级用法

AWTK 串口屏 智能家居示例 1. 功能 这个例子稍微复杂一点&#xff0c;界面这里直接使用了 立功科技 ZDP1440 HMI 显示驱动芯片 例子中的 UI 文件和资源&#xff0c;重点关注数据绑定。在这里例子中&#xff0c;模型&#xff08;也就是数据&#xff09;里包括一台空调和一台咖…

申请香港高才通计划有什么好处和优势?

申请香港高才通计划有什么好处和优势&#xff1f; 据香港特区政府最新消息&#xff0c;截至今年11月底&#xff0c;各项输入人才计划共收到超过20万宗申请&#xff0c;是2022年申请数目的接近四倍。 在香港特区政府积极引进人才的推动下&#xff0c;今年首11个月&#xff0c;超…

FreeModbus--学习函数指针

目录 函数指针 最简单的例子 稍作修改例子 引入协议栈的函数指针 引入协议栈第二处函数指针 函数指针 该协议栈中使用到函数指针&#xff0c;现开展一篇专门存放函数指针的文章。 C语言的函数指针是指向函数的指针变量&#xff0c;可以用来存储和调用函数的地址。在C语言中…

Vue 组件传参 emit

emit 属性&#xff1a;用于创建自定义事件&#xff0c;接收子组件传递过来的数据。 注意&#xff1a;如果自定义事件的名称&#xff0c;和原生事件的名称一样&#xff0c;那么只会触发自定义事件。 setup 语法糖写法请见&#xff1a;《Vue3 子传父 组件传参 defineEmits》 语…

Qt容器QMdiArea 小部件提供一个显示 MDI 窗口的区域

## QMdiArea ## 控件简介 QMdiArea 继承 QAbstractScrollArea。QMdiArea 小部件提供一个显示 MDI 窗口的区域。QMdiArea的功能本质上类似于MDI窗口的窗口管理器。大多数复杂的程序,都使用MDI框架,在 Qt designer 中可以直接将控件 MDI Area 拖入使用。 ## 用法示例 例 qm…

luceda ipkiss教程 49:以pcell的方式定义线路

在ipkiss中&#xff0c;通常以i3.Circuit来设计线路&#xff08;见教程2&#xff09;&#xff0c;以i3.Pcell的框架也可以来设计线路&#xff1a; 以SplitterTree为例&#xff1a; 线路仿真结果&#xff1a; 所有代码如下&#xff1a; from si_fab import all as pdk import…