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,一经查实,立即删除!

相关文章

重新格式化字符串

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请你将该字…

npm、yarn常用命令

1、设置npm路径 #全局安装路径 npm config set prefix "D:\Program Files\nodejs\node_global" #缓存路径 npm config set cache "D:\Program Files\nodejs\node_cache"2、设置镜像 #1,淘宝镜像源 npm config set registry https://registry.npmmirror.…

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…

pdf读取内容缺失(漏字/文字丢失)问题

项目中遇到pdf文件漏字,由于文件涉密,不能展示,简单描述一下: 比如原pff中 姓名:张三 读取结果中:空白:张三 即:原文件说是银行出具的打款证明,银行内部设置了文件权限&a…

读取excel写入数据库

String filePath “C:\Users\Farben\Desktop\地图助残.xlsx”; ReadExcel readExcel new ReadExcel(); // System.out.println(readExcel(filePath).toString()); // 存放读取出来的姓名和电话 InputStream iStream new FileInputStream(filePath); XSSFWorkbook workbook …

牛客网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;这非常了不…

copy导入ERROR:value too long for type……

错误描述 客户的gaussdb数据库&#xff0c;由于权限有限。只有tdss客户端工具和gsql工具。现在是需要将一个较大的表&#xff0c;移到其他database的schema下。 使用以下方法&#xff0c;对于较小的表都成功了 #导入t1 copy t1 from /data/input/t1.txt delimiter ^; #导出t1 …

10 种隐藏元素的 CSS 技术

10 种隐藏元素的 CSS 技术 在 Web 开发中&#xff0c;在许多情况下我们可能希望操纵网站上某些元素的可见性。本文将考虑各种用例&#xff0c;探讨使用 CSS 隐藏元素的十种不同方法。 隐藏元素的具体行为可能会根据我们的需要而有所不同。我们可能需要为隐藏元素保留空间的方…

LeetCode 14 最长公共前缀

题目描述 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出&#xff1a;"fl&qu…