Python常见数据类型处理

一、数据类型分类

Python3 中常见的数据类型有:

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

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

  • **不可变数据(3 个):**Number(数字)、String(字符串)、Tuple(元组);

  • **可变数据(3 个):**List(列表)、Dictionary(字典)、Set(集合)。

  • 基本

    • Number(数字)
    • String(字符串)
  • 多字段

    • List(列表)
    • Tuple(元组)
    • Dictionary(字典)
    • Set(集合)
#	List(列表)
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8]# Tuple(元组)(值不能修改)
my_tuple = (1, 2, 3, 4)# Dictionary(字典)
my_info = {'name': '张三', 'age': 18, 'address': '北京市'}# Set(集合)
set01 = {1, 2, 3, 4} 

二、基本数据类型

1、Number(数字)

  • Python3 支持 int、float、bool、complex(复数)
  • 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • 像大多数语言一样,数值类型的赋值和计算都是很直观的。
  • 内置的type()函数可以用来查询变量所指的对象类型。
  • Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 一个变量可以通过赋值指向不同类型的对象。
  • 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
  • 在混合计算时,Python会把整型转换成为浮点数
>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

2、String(字符串)

  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
  • 字符串可以用+运算符连接在一起,用*运算符重复。
  • Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  • Python中的字符串不能改变。
print(str[0:-1])     # 打印字符串第一个到倒数第二个字符(不包含倒数第一个字符)
print(str[0])        # 打印字符串的第一个字符
print(str[2:5])      # 打印字符串第三到第五个字符(包含第五个字符)
print(str[2:])       # 打印字符串从第三个字符开始到末尾str_01 = 'my name is:{}, age:{}'
print(str_01.format('张三', 18))str_02 = 'my name is:{name}, age:{age}'
print(str_02.format(name='张三', age=18))str_03 = 'my name is:{name}, age:{age}'
print(str_03.format_map({'name': '张三', 'age': 18}))

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

print('Ru\noob')
Ru
oob
print(r'Ru\noob')
Ru\noob

encode()decode()方法

  • encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。
  • decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。
  • 该方法返回编码后的字符串,它是一个 bytes 对象。
str.encode(encoding='UTF-8',errors='strict')
bytes.decode(encoding="utf-8", errors="strict")
  • encoding – 要使用的编码,如: UTF-8。
  • errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。
#!/usr/bin/python3str = "菜鸟教程"
str_utf8 = str.encode("UTF-8", 'strict')
str_gbk = str.encode("GBK")print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)print("UTF-8 解码:", str_utf8.decode('UTF-8'))
print("GBK 解码:", str_gbk.decode('GBK', 'strict'))

结果:

UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程
3.2 format格式化字符串
# 1、
print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com'))
# 2、
print('{name}网址: {site}'.format(name='菜鸟教程', site='www.runoob.com'))# 3、
print('{0} 和 {1}'.format('Google', 'Runoob'))
# 可以任意组合
print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))# 4、
table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))

3、Bool(布尔类型)

布尔类型即 True 或 False。

在 Python 中,True 和 False 都是关键字,表示布尔值。

布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。

布尔类型特点:

  • 布尔类型只有两个值:True 和 False。
  • 布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。
  • 布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。
  • 布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。
a = True
b = False# 比较运算符
print(2 < 3)   # True
print(2 == 3)  # False# 逻辑运算符
print(a and b)  # False
print(a or b)   # True
print(not a)    # False# 类型转换
print(int(a))   # 1
print(float(b)) # 0.0
print(str(a))   # "True"

Python3 中,boolint 的子类,TrueFalse可以和数字相加,True==1、False==0会返回True,但可以通过is来判断类型。

a1 = True
print(type(a1))
print(a1 + 100)<class 'bool'>
101

4、Bytes

字符串转为Bytes

# 解析为bytes:b'Hello,World'
print('Hello,World'.encode())

Bytes转为字符串

# 创建一个bytes对象
bytes_data = b'Hello, World!'# b'Hello, World!'
print(bytes_data)# 将bytes对象转换为字符串
string_data = bytes_data.decode('utf-8')
print(string_data)

三、多值存储

1、List(列表)

增、删、改、查:

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 1、增
my_list.append('333')
# 将另一个集合中添加到列表中
insert_list = [1, 23]
my_list.extend(insert_list)
# 指定位置前插入元素
my_list.insert(2, '34')# 2、删
my_list.remove()# 3、改
my_list[1] = '张三'# 4、查
# 查看是否存在于集合中
print('张三' in my_list)
# 查询所在索引
my_list.index('张三')
my_list.index('张三', 1, 4)
# 查询数量
my_list.count('张三')

其它

# 循环
for one in my_list:# print(one)print(one, end='==')print(one, end='==\n%%% ')# 排序
# 排序-正序
my_list.sort()
# 排序-倒叙
my_list.sort(reverse=True)

函数内置方法

方法序号
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)将对象插入列表
list.pop([index=-1\])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反向列表中元素
list.sort( key=None, reverse=False)对原列表进行排序
list.clear()清空列表
list.copy()复制列表

2、Tuple(元组)

Python的元组与列表类似,不同之处在于元组的元素不能修改。

# tuple元组
my_tuple = (1, 2, 3, 4)# 查-某个值
print(my_tuple[1])# 查—查询所在索引位置(前闭右开区间)(起始索引:0)
print(my_tuple.index(2, 1, 3))
# 查-某值数量
print(my_tuple.count(1))

Python元组包含了以下内置函数

函数方法及描述实例
len(tuple)计算元组元素个数>>> tuple1 = ('Google', 'Runoob', 'Taobao')
max(tuple)返回元组中元素最大值max(tuple2)
min(tuple)返回元组中元素最小值min(tuple2)
tuple(iterable)将可迭代系列转换为元组tuple1=tuple(['Google', 'Taobao', 'Runoob', 'Baidu'])

3、Dictionary(字典)

增删改查

my_info = {'name': '张三', 'age': 18, 'address': '北京市'}
# 1、查询元素
# 查-查询单个(无值异常)
print(my_info['name'])
print(my_info['age'])
# 查-查询单个(无值返回 None)
print(my_info.get('name1'))
# 查-查询单个(无值返回 指定值)
print(my_info.get('name2', '李四'))# 2、修改元素
my_info['name'] = '王五'# 3、添加元素
# 添加元素-键不存在则添加
my_info['id'] = 1234# 4、删除元素
# 删除元素-删除单个元素
del my_info['id']
# 删除-删除字典(查询会报错
del my_info
# 删除—清空字段(值为{})
my_info.clear()

其它API

# 5、其它API
# 测量字典中,键值对的个数
print(len(my_info))# 返回一个包含字典所有KEY的列表
print(my_info.keys())# 返回一个包含字典所有value的列表
print(my_info.values())# 返回一个包含所有(键,值)元祖的列表
print(my_info.items())
方法函数及描述
dict.clear()删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict如果键在字典dict里返回true,否则返回false
dict.items()以列表返回一个视图对象
dict.keys()返回一个视图对象
dict.setdefault(key, default=None)类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2)把字典dict2的键/值对更新到dict里
dict.values()返回一个视图对象
pop(key[,default\])删除字典 key(键)所对应的值,返回被删除的值。
popitem()返回并删除字典中的最后一对键和值。

4、Set(集合)

  • 集合(set)是一个无序的不重复元素序列。
  • 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
  • 可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
# 0、创建集合
set01 = {1, 2, 3, 4}            # 直接使用大括号创建集合
set02 = set([4, 5, 6, 7])      # 使用 set() 函数从列表创建集合# 1、增
# 1-1 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
set01.add(100)
# 1-2 添加元素,且参数可以是列表,元组,字典等
set01.update([1, 2, ])# 2、删
# 2-1 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
set01.remove(1)
# 2-2 移除集合中的元素,且如果元素不存在,不会发生错误
set01.discard(1)
# 2-3 随机删除集合中的一个元素
s.pop() # 3、其它
# 判断元素是否在集合内(False)
print('1' in set03)
# 计算集合元素个数
print(len(set01))
# 清空集合
set01.clear()

集合内置方法完整列表

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素
len()计算集合元素个数

四、其它

1、Json

方法作用返回类型
eval(字符串表达式)eval() 函数用来执行一个【字符串表达式】,并返回表达式的值。list、dict、tuple
json.dumps()将python对象编码成Json字符串返回json字符串
json.loads()将Json字符串解码成python对象返回python对象
json.dump()将python中的对象转化成json储存到文件中无返回
json.load()将文件中的json的格式转化成python对象提取出来返回python对象

五、其它函数

1、print()

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects :复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep :用来间隔多个对象,默认值是一个空格。
  • end :用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file :要写入的文件对象。
  • flush :输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
# 1 2 3 4 5
print('1', '2', '3', '4', '5')
# 1+2+3
print('1', '2', '3', sep='+')
# 1++2++3==
print('1', '2', '3', sep='++', end='==')

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

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

相关文章

详解 Spring MVC(Spring MVC 简介)

什么是 Spring MVC&#xff1f; Spring MVC 是 Spring 框架提供的一个基于 MVC 模式的轻量级 Web 框架&#xff0c;是 Spring 为表示层开发提供的一整套完整的解决方案&#xff0c;Spring MVC 使用了 MVC 架构模式&#xff0c;将 Web 层职责解耦&#xff0c;基于请求驱动模型&…

基于Java、SpringBoot和uniapp在线考试系统安卓APP和微信小程序

摘要 基于Java、SpringBoot和uniapp的在线考试系统安卓APP微信小程序是一种结合了现代Web开发技术和移动应用技术的解决方案&#xff0c;旨在为教育机构提供一个方便、高效和灵活的在线考试平台。该系统采用Java语言进行后端开发&#xff0c;使用SpringBoot框架简化企业级应用…

SpringCloud微服务之Nacos、Feign、GateWay详解

SpringCloud微服务之Nacos、Feign、GateWay详解 1、Nacos配置管理1.1、统一配置管理1.1.1、在nacos中添加配置文件1.1.2、从微服务拉取配置 1.2、配置热更新1.2.1、方式一1.2.2、方式二 1.3、配置共享1.3.1、配置共享的优先级 1.4、搭建nacos集群1.4.1、初始化数据库1.4.2、下载…

plt多子图设置

import matplotlib.pyplot as plt# 使用 subplots 函数创建一个 2x3 的子图网格 fig, axs plt.subplots(nrows2, ncols3, figsize(16, 10)) # 调整 figsize 来改变图像大小# 遍历每个子图&#xff0c;并绘制一些内容&#xff08;这里只是简单的示例&#xff09; for ax in ax…

React与Vue的区别?

一、区别: 1. 语法 Vue采用自己特有的模板语法&#xff1b; React是单向的&#xff0c;采用jsx语法创建react元素。 2.监听数据变化的实现原理不同 Vue2.0 通过Object.defineproperty()方法的getter/setter属性, 实现数据劫持, 每次修改完数据会触发diff算法(双端对比) …

VUE 页面生命周期基本知识点

在 Vue.js 中&#xff0c;页面生命周期&#xff08;更准确地说是组件生命周期&#xff09;指的是组件从创建到销毁的一系列过程。了解这些生命周期钩子可以帮助我们更好地管理组件的状态和行为。以下是 Vue 组件的主要生命周期钩子&#xff1a; beforeCreate 在实例初始化之后&…

vue使用element plus组件上传服务器

在Vue项目中使用Element Plus组件上传文件到服务器&#xff0c;你可以使用ElUpload组件。以下是一个简单的示例&#xff0c;展示了如何使用ElUpload组件来上传文件&#xff0c;并将其保存到服务器。 首先&#xff0c;确保你已经安装了Element Plus。 npm install element-plu…

从入门到精通:详解Linux进程管理

前言 在这篇文章中&#xff0c;我将带领大家深入学习和理解Linux系统中的进程管理。无论你是初学者还是有一定经验的开发者&#xff0c;相信这篇文章都会对你有所帮助。我们将详细讲解冯诺依曼体系结构、操作系统概念、进程管理、进程调度、进程状态、环境变量、内存管理以及其…

C语言之函数和函数库以及自己制作静态动态链接库并使用

一&#xff1a;函数的本质 1&#xff1a;C语言为什么会有函数 &#xff08;1&#xff09;整个程序分为多个源文件&#xff0c;一个文件分为多个函数&#xff0c;一个函数分成多个语句&#xff0c;这就是整个程序的组织形式。这样的组织好处在于&#xff1a;分化问题、、便于程序…

分布式版本控制工具 git

git 是什么 分布式版本控制工具。github 是代码托管平台。 git 有什么用 保存文件的所有修改记录。使用版本号&#xff08;sha1 哈希值&#xff09; 进行区分。随时可浏览历史版本记录。可还原到历史指定版本。对比不同版本的文件差异。 为什么要使用 git 多人协作开发一个大…

SQL 优化

SQL 优化是指通过各种手段提高 SQL 查询的执行效率,减少资源消耗,提高数据库的整体性能。以下是一些详细的 SQL 优化方法,包括索引优化、查询优化、数据库设计优化等。 1. 索引优化 创建适当的索引: 单列索引:在查询中频繁使用的单个列上创建索引。多列索引(复合索引):…

STM32手写超频到128M函数

今天学习了野火的STM32教程学会了如何设置STM32的时钟频率&#xff0c;步骤比较详细&#xff0c;也很容易理解&#xff0c;就是视频教程不能跳着看&#xff0c;只能一节节的看&#xff0c;不然会知识不连贯&#xff0c;造成有些知识不理解&#xff0c;连续着看还是没有什么难度…

docker-file 网络

docker挂载 1.绑定挂载&#xff08;Bind Mounts&#xff09;&#xff1a;绑定挂载是将主机上的文件或目录挂载到容器中。 docker run -v /host/path:/container/path image_name 2.卷挂载&#xff08;Volume Mounts&#xff09;&#xff1a;卷挂载将 Docker 数据卷挂载到容器中…

【CTF Web】CTFShow web4 Writeup(SQL注入+PHP+字符型注入)

web4 1 管理员阿呆又失败了&#xff0c;这次一定要堵住漏洞 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/or|\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\|select/i",$id)){die(&q…

yolov8推理由avi改为mp4

修改\ultralytics-main\ultralytics\engine\predictor.py&#xff0c;即可 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…

Android开发-Android开发中的TCP与UDP通信策略的实现

Android 开发中的 TCP 与 UDP 通信策略的实现 1. 前言2. 准备工作3. Kotlin 中 TCP 通信实现客户端代码示例&#xff1a;服务器代码示例&#xff1a; 4. Kotlin 中 UDP 通信实现客户端代码示例&#xff1a;服务器代码示例&#xff1a; 5. TCP 与 UDP 应用场景分析TCP 实现可靠传…

搭建访问阿里云百炼大模型环境

最近这波大降价&#xff0c;还有限时免费&#xff0c;还不赶快试试在线大模型&#xff1f;下面整理访问百炼平台的千问模型方法。 创建RAM子账号并授权 创建RAM子账号 1. “访问控制RAM”入口&#xff08;控制台URL&#xff09; 然后点击进入“RAM管理控制台” 2. 添加用户 …

vue 区分多环境打包

需求&#xff1a;区分不同的环境&#xff08;测试、正式环境&#xff09;&#xff0c;接口文档地址不同&#xff1b; 配置步骤&#xff1a; 1、在根目录下面新建 .env.xxx 文件&#xff08;xxx 根据环境不同配置&#xff09; 文件中一定要配置的参数项为&#xff1a;NODE_ENV…

【Python搞定车载自动化测试】——Python实现CAN总线Bootloader刷写(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

python 火焰检测

在日常生活,总是离不开火,有时候我们需要预防火灾发生,但是我们又不可能一直盯着,这时候我们就需要一款程序帮我们盯着,一旦发生火灾从而告知我们,今天就带大家编写这么一款应用。 安装需要的库 pip install opencv-python 代码实现 import cv2 # Library for…