当前位置: 首页 > news >正文

python数据类型总结

标准数据类型

Python 有以下几种标准数据类型:

  • 整数(int):表示整数值,如 1, -5, 0 等。
  • 浮点数(float):表示小数值,如 3.14, -0.01, 1.0 等。
  • 字符串(str):表示文本数据,如 “Hello”, “Python”, “123” 等。
  • 列表(list):表示一个有序的元素集合,可以存储不同类型的数据,如 [1, 2, 3], [“a”, “b”, “c”], [1, “a”, 3.14] 等。
  • 字典(dict):表示一个无序的键值对集合,可以通过键来访问或修改对应的值,如 {“name”: “Alice”, “age”: 18}, {“a”: 1, “b”: 2, “c”: 3} 等。

每种数据类型都有自己的特点和使用场景。例如:

  • 整数和浮点数可以用来进行数值计算,如加减乘除等。
  • 字符串可以用来处理文本数据,如分割,拼接,替换等。
  • 列表可以用来存储多个相关的数据,如一组学生的成绩,一组城市的名称等。
  • 字典可以用来存储多个具有属性的数据,如一本书的标题,作者,出版年份等。

为了更好地理解每种数据类型的差异,可以通过示例代码来展示它们的用法。例如:

# 创建一个整数变量
x = 10
# 创建一个浮点数变量
y = 3.14
# 创建一个字符串变量
z = "Hello"
# 创建一个列表变量
a = [1, 2, 3]
# 创建一个字典变量
b = {"name": "Alice", "age": 18}# 打印每个变量的类型和值
print(type(x), x)
print(type(y), y)
print(type(z), z)
print(type(a), a)
print(type(b), b)# 对整数和浮点数进行加法运算
print(x + y)# 对字符串进行拼接运算
print(z + " Python")# 对列表进行索引和切片操作
print(a[0]) # 获取第一个元素
print(a[1:3]) # 获取第二个和第三个元素# 对字典进行键值访问和修改操作
print(b["name"]) # 获取"name"对应的值
b["age"] = 19 # 修改"age"对应的值
print(b)

元组与集合

除了标准数据类型,Python 还提供了一些特殊数据类型,如集合(set)和元组(tuple)³⁵。

  • 集合(set):表示一个无序的元素集合,可以存储不同类型的数据,但是不能有重复的元素,如 {1, 2, 3}, {“a”, “b”, “c”}, {1, “a”, 3.14} 等。
  • 元组(tuple):表示一个有序的元素集合,可以存储不同类型的数据,但是不能修改元素的值,如 (1, 2, 3), (“a”, “b”, “c”), (1, “a”, 3.14) 等。

每种数据类型都有自己的特点和使用场景。例如:

  • 集合(set)可以用来进行集合运算,如并集,交集,差集等。
  • 元组(tuple)可以用来存储不可变的数据,如一组常量,一组坐标等。

为了更好地理解每种数据类型的差异,可以通过示例代码来展示它们的用法。例如:

# 创建一个集合变量
c = {1, 2, 3}
# 创建一个元组变量
d = (1, 2, 3)# 打印每个变量的类型和值
print(type(c), c)
print(type(d), d)# 对集合进行并集运算
print(c | {4, 5})# 对元组进行索引操作
print(d[0]) # 获取第一个元素

布尔类型

布尔类型(boolean)是 Python 的内置数据类型之一,用于表示表达式的真值(truth value),即 True 或 False¹²。

  • 布尔类型是整数类型(int)的子类型,True 和 False 在大多数情况下可以当作 0 和 1 来使用,但是在 repr() 和 str() 函数中会显示为 True 和 False³。
  • 布尔类型可以用于比较值,检查身份和成员关系,以及控制程序的流程,如 if 语句和 while 循环。
  • 布尔类型可以通过 bool() 函数从其他数据类型转换而来,一般来说,空值(如空字符串,空列表,None 等)会转换为 False,非空值会转换为 True。

以下是一些关于布尔类型的例子:

# 布尔类型的字面量
a = True
b = False
print(type(a), type(b)) # <class 'bool'> <class 'bool'># 布尔类型的算术运算
c = a + b # True + False 等于 1 + 0
print(c) # 1# 布尔类型的比较运算
d = a == b # True == False 返回 False
print(d) # False# 布尔类型的逻辑运算
e = a and b # True and False 返回 False
print(e) # False# 布尔类型的条件语句
if a:print("a is True")
else:print("a is False")
# a is True# 布尔类型的转换
f = bool("") # 空字符串转换为 False
print(f) # Falseg = bool([1, 2, 3]) # 非空列表转换为 True
print(g) # True

可变类型与不可变类型

在 Python 中,数据类型可以分为可变类型(mutable)和不可变类型(immutable)¹²³。

  • 可变类型(mutable):指的是可以在原地修改值或数据的类型,如列表(list),字典(dict),集合(set)等。
  • 不可变类型(immutable):指的是不可以在原地修改值或数据的类型,如整数(int),浮点数(float),字符串(str),元组(tuple)等。

可变类型和不可变类型的区别主要体现在以下方面:

  • 可变类型的对象在修改后,其内存地址不会改变,而不可变类型的对象在修改后,会创建一个新的对象,并分配一个新的内存地址。
  • 可变类型的对象可以作为字典的键或集合的元素,而不可变类型的对象不能,因为字典和集合要求键或元素是可哈希的,而可变类型的对象是不可哈希的。
  • 可变类型和不可变类型对函数参数传递的方式也有影响,因为 Python 的函数参数传递是按引用传递的,所以如果参数是可变类型的对象,那么函数内部对该对象的修改会影响到函数外部,而如果参数是不可变类型的对象,那么函数内部对该对象的修改不会影响到函数外部。

总结

有序类型(可以索引)

可按照一定顺序排序的数据类型

1、列表(list ): 多个数据 存储数据:可以放任任意的数据类型
2、元组( tuple): 多个数据 存储数据:可以放任任意的数据类型 不能修改和添加里面的值 私密的数据
3、字符串 (str ): 一个数据 描述性质:表示名字

散列类型

不可以进行索引取值,主要体现为没有顺序,一盘散沙。

1、集合(set ): 多个数据 ,存储数据:可以放任任意的数据类型, 可变类型,无序。

2、字典 (dict):多个数据 ,存储数据:key里面只能放入不可变类型,最好字符串类型,value里面可以放任任意的数据类型

可变和不可变

1、可变类型(mutable):指的是可以在原地修改值或数据的类型,如列表(list),字典(dict),集合(set)等。
2、不可变类型(immutable):指的是不可以在原地修改值或数据的类型,如整数(int),浮点数(float),字符串(str),元组(tuple),布尔(bool)。但是元组这里有个特例:如果元组中的元素类型是可变类型如list,那么其元组中list中的值却是可以变化的,如下案例:

a_tuple  = ([1,2,3],'hello world',11,('a','b','c'),{1,2,3.14,'你好'},{"student_name_1":"张三","sutdent_name_2":"李四"})print(a_tuple)# 循环遍历一个元组,并输出每个元素的类型
for tuple_one in a_tuple:print(type(tuple_one),tuple_one)# 以下是遍历的输出结果 :# <class 'list'> [1, 2, 3]
# <class 'str'> hello world
# <class 'int'> 11
# <class 'tuple'> ('a', 'b', 'c')
# <class 'set'> {1, 2, 3.14, '你好'}
# <class 'dict'> {'student_name_1': '张三', 'sutdent_name_2': '李四'}# 下面来修改元组中的list
print(id(a_tuple))
a_tuple_list = a_tuple[0]
a_tuple_list.append("新手")
print(a_tuple)
print(id(a_tuple))
print(id(a_tuple[0]))
print(id(a_tuple_list))
b_tuple = a_tuple # 一个元组的浅拷贝,内存地址指向一个,一个改变都改变
b_tuple[0][0] = 2 # 修改了b_tuple a_tuple的值也跟着改变了。
print(id(b_tuple))
print(b_tuple)
print(a_tuple)a_tuple[0][1] = 3 # 修改了a_tuple 同时也修改了b_tupleprint(b_tuple)
print(a_tuple)# 元组的深拷贝import copy# 创建一个元组
original_tuple = (1, 2, 3, [4, 5, 6])# 使用copy模块中的deepcopy()函数进行深拷贝
new_tuple = copy.deepcopy(original_tuple)# 修改深拷贝后的元组中的列表内容
new_tuple[3][0] = 7# 打印原始元组和深拷贝后的元组
print(original_tuple) #(1, 2, 3, [4, 5, 6])
print(new_tuple) # (1, 2, 3, [7, 5, 6])print(id(original_tuple))
print(id(new_tuple))

重复不重复

1、set(集合):不可存在重复的值。

全部数据类型

Python 内置的数据类型总结

  • Numeric - int, long,float, complex
  • String - str
  • Sequence - list, tuple, range
  • Binary - bytes, bytearray, memoryview
  • Mapping - dict
  • Boolean - bool
  • Set - set, frozenset
  • None - NoneType

在这里插入图片描述

相关文章:

python数据类型总结

标准数据类型 Python 有以下几种标准数据类型&#xff1a; 整数&#xff08;int&#xff09;&#xff1a;表示整数值&#xff0c;如 1, -5, 0 等。浮点数&#xff08;float&#xff09;&#xff1a;表示小数值&#xff0c;如 3.14, -0.01, 1.0 等。字符串&#xff08;str&…...

TS内置类型总结

typeof 取对象身上的类型 const person {name: ,job: ,age:18 } type p typeof person ->> type p {name: string;job: string;age: number; }keyof取一个类型的属性明作为一个联合类型 const person {name: ,job: ,age: 18 } type p typeof person type k keyof p…...

Spring Cloud Alibaba: Gateway 网关过滤器 GatewayGatewayFilter factory (记录)

目录 AddRequestHeader GatewayFilter factory AddRequestHeadersIfNotPresent GatewayFilter factory AddRequestParameter GatewayFilter Factory AddResponseHeader GatewayFilter Factory CircuitBreaker GatewayFilter factory circuit breaker based on the status…...

Windows Server 2016版本说明

Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的。它对应于Windows Server的早期版本中的Windows Small Business Server。此版本最多可容纳25个用户和50台设备。它支持两个处理器内核和高达64GB的RAM。它不支持Windows Serve…...

车载红外夜视「升温」

红外夜视赛道&#xff0c;正在升温。 本周&#xff0c;全球车载后视镜头部供应商Gentex宣布&#xff0c;领投以色列热成像技术初创公司ADASKY&#xff0c;后者在B轮融资中拿到了3000万美元。按照计划&#xff0c;Gentex将协助ADASKY将红外夜视技术推向汽车市场。 事实上&#x…...

ext3 文件系统的特点、优缺点以及使用场景

ext3&#xff08;Third Extended File System&#xff09;是 ext2 文件系统的后续版本&#xff0c;它在 ext2 文件系统的基础上增加了日志功能&#xff0c;以提高文件系统的可靠性和稳定性。下面是 ext3 文件系统的特点、优缺点以及使用场景&#xff1a; 特点&#xff1a; ext…...

rk3568 修改开机logo

rk3568 修改开机显示logo Android 显示 logo 的作用是为了标识应用程序或设备的品牌和身份。在应用程序中&#xff0c;logo 可以帮助用户快速识别应用程序&#xff0c;并与其他应用程序区分开来。在设备中&#xff0c;logo 可以帮助用户识别设备的品牌和型号&#xff0c;以及与…...

golang实现关键路径算法

关键路径算法&#xff08;Critical Path Method&#xff0c;简称CPM&#xff09;是一种用于项目管理的技术&#xff0c;主要用于计算项目中的关键路径和关键活动。关键路径是指项目中的最长路径&#xff0c;决定了项目的最短完成时间。关键活动是指在关键路径上的活动&#xff…...

Overcoming catastrophic forgetting in neural networks

目录 预备知识&#xff1a; 论文笔记 1. Introduction 2. Elastic weight consolidation 2.1 EWC allows continual learning in a supervised learning context 2.2 EWC allows continual learning in a reinforcement learning context 3. Conclusion 文章链接&#x…...

[Linux] Linux文件系统

&#x1f941;作者&#xff1a; 华丞臧. &#x1f4d5;​​​​专栏&#xff1a;【LINUX】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 文章目录 一、Linux文件系统1.1 磁盘1.2 inode1.3 软硬…...

有仰拍相机和俯拍相机时,俯拍相机中心和吸嘴中心的标定

俯拍相机中心和吸嘴中心的标定 文章目录 俯拍相机中心和吸嘴中心的标定 前言适用模型如下&#xff1a;一、使用一个标定片进行标定1.关键注意&#xff1a;2.标定步骤&#xff1a; 二、使用一个L型的工件1.关键注意&#xff1a;2.标定步骤&#xff1a; 总结 前言 在自动化设备领…...

【Vue学习笔记5】Vue3中的响应式:ref和reactive、watchEffect和watch

所谓响应式就是界面和数据同步&#xff0c;能实现实时更新。 Vue 中用过三种响应式解决方案&#xff0c;分别是 defineProperty、Proxy 和 value setter。Vue 2 使用的方案是 defineProperty API。Vue3中使用的方案是Proxy和value setter。 1. ref和reactive vue3中实现响应…...

自动化测试工具的基本原理以及应用场景

自动化测试工具是现代软件开发流程中必不可少的组成部分&#xff0c;它可以通过编写脚本或使用图形用户界面工具自动化测试过程&#xff0c;提高测试的效率和准确性。本文将介绍自动化测试工具的基本原理以及应用场景。 自动化测试工具的基本原理 自动化测试工具通常采用的原理…...

《Java虚拟机学习》 java代码的运行过程

1. Java文件转换 当我们保存java文件后&#xff0c;首先由编译器编译成class文件&#xff0c;然后通过Java虚拟机将class文件转换成字节码文件 2.Java虚拟机是怎么运行Java文件 首先将java文件加载到java虚拟机中&#xff0c;然后由虚拟机将类元信息存储在 虚拟机的方法区中。…...

关于Intel处理器架构中AVX2里Gather特性的说明

在 Intel Haswell 架构里引入了 Gather 特性。它使得CPU可以使用向量索引存储器编址从存储器取非连续的数据元素。这些gather指令引入了一种新的存储器寻址形式&#xff0c;该形式由一个 基地址寄存器&#xff08;仍然是通用目的寄存器&#xff09;和通过一个 向量寄存器&#…...

UNIX常用命令(C站最全,一文通关)

unix常见命令列举如下&#xff0c;除了看还要会用&#xff1a; ls - 列出目录下的文件 cd - 切换目录 pwd - 显示当前目录 mkdir - 创建目录 rm - 删除文件或目录 rmdir - 删除空目录 cp - 复制文件或目录 mv - 移动文件或目录,或重命名 cat - 显示文件内容 less - 分…...

Vue监听属性详细讲解

文章目录 定义要监听的属性定义 watch修改监听的属性值监听数组变化监听对象变化监听计算属性变化监听事件变化监听路由变化 在 Vue 中&#xff0c;可以使用 watch/$watch 方法监听数据、计算属性、事件和路由的变化&#xff0c;从而实现数据绑定、事件监听和路由控制等功能。需…...

网申形式一览:这三种投递方式,你了解吗?

银行校招是个滚动的过程&#xff0c;每家银行的网申期并不一致。想要在看重的银行网申期投出一份漂亮的简历&#xff0c;简历自身要“过硬”。是不是还有同学不清楚网申简历形式&#xff1f; 从如信银行考试中心了解到&#xff0c;银行网申&#xff0c;尤其是大行网申&#xff…...

vue项目将多张图片生成一个gif动图

当前做项目有一个需求是将多张图片生成一个gif动图的形式 类似下面图片几张图片叠加生成一个gif动图 图片涉及工作隐私&#xff0c;就不公开啦 我们要引入一个gif.js的引入包&#xff0c;但是他没有直接引入的方式&#xff0c;只能从官方下载文件包&#xff0c;下载地址&#…...

开心档之Go 语言常量

Go 语言常量 常量是一个简单值的标识符&#xff0c;在程序运行时&#xff0c;不会被修改的量。 常量中的数据类型只可以是布尔型、数字型&#xff08;整数型、浮点型和复数&#xff09;和字符串型。 常量的定义格式&#xff1a; const identifier [type] value你可以省略类…...

混合求解器:用神经网络增强传统微分方程数值方法

1. 项目概述&#xff1a;当数值方法遇到机器学习在科学计算和工程仿真领域&#xff0c;求解常微分方程&#xff08;ODE&#xff09;和偏微分方程&#xff08;PDE&#xff09;是绕不开的核心任务。无论是模拟电路中的电流变化、预测天气系统的演变&#xff0c;还是分析机械结构的…...

DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉!

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek系统设计辅助效能断崖式下降的3个信号&#xff0c;第2个90%工程师至今未察觉&#xff01; 当 DeepSeek 的系统设计辅助能力突然变“笨”——接口建议频繁失准、上下文感知错乱、生成代码无法通过基础编…...

3步深度解锁:网络设备权限管理工具的实战手册

3步深度解锁&#xff1a;网络设备权限管理工具的实战手册 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾面对功能受限的网络设备感到束手无策&#xff1f;当默认配置锁死了硬…...

SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第五篇:声明时的键值设计技巧:结构与内表的主键、非主键配置指南

变量、常量、结构与内表声明&#xff08;10篇博客合集&#xff09; 第五篇&#xff1a;声明时的键值设计技巧&#xff1a;结构与内表的主键、非主键配置指南如果把内表比作一张内存中的“数据库表”&#xff0c;那么键就是这张表的索引甚至主键。键的设计直接决定了数据的唯一性…...

从BUG()到panic:深入Linux 5.4内核,看异常处理如何层层递进

从BUG()到panic&#xff1a;Linux内核异常处理的防御体系全解析当你在深夜调试一个内核模块时&#xff0c;突然屏幕刷出一串红色警告——这可能是每个Linux内核开发者都经历过的噩梦时刻。但你是否想过&#xff0c;从第一行警告出现到系统完全崩溃&#xff0c;内核究竟经历了怎…...

内存占用3KB!极致瘦身释放MCU无限可能

极致小体积&#xff0c;给工业领域带来了无限的可能&#xff1a;更低硬件成本&#xff0c;更小芯片体积&#xff0c;更低功耗&#xff0c;更高可靠性&#xff0c;让每一颗小MCU都拥有大系统的完整能力。 https://www.bilibili.com/video/BV1eZLi6PEjc/?spm_id_from333.1387.ho…...

谷氨酸发酵过程的软测量建模【附模型】

✨ 长期致力于软测量、谷氨酸发酵、动力学模型、支持向量机、高斯过程、变量选择、异常状态研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;多阶段高斯…...

Ubuntu经常安装软件

1、垃圾清理工具stacer sudo apt updatesudo apt install stacer apt cleanapt autocleanapt autoremove 2、类似与everything的工具Fsearcch 1sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-stable 2sudo apt update 3sudo apt install fsearch (注&#xf…...

GEO优化可以覆盖哪些搜索平台

这是一个非常现实的问题。企业投放资源做GEO&#xff0c;当然希望覆盖面越广越好。那么GEO优化到底能覆盖哪些平台&#xff1f;覆盖到什么程度&#xff1f;不同平台的GEO逻辑有什么差异&#xff1f;GEO平台覆盖的三个层级第一层级&#xff1a;通用大模型AI平台&#xff08;核心…...

基于Arduino与433MHz射频的智能灯光定时系统设计与实现

1. 项目概述&#xff1a;告别机械定时器&#xff0c;打造智能灯光管家家里前后院的照明&#xff0c;还有出门度假时屋内的几盏灯&#xff0c;过去一直靠四个老旧的机械定时器来管理。说实话&#xff0c;这玩意儿用起来真是费劲。它的核心问题在于“死板”——你设定好晚上7点开…...