1.简介
上一篇宏哥讲解和分享了数据类型得高级应用,由于时间的关系,还剩下一部分,宏哥今天就将剩下一部分在日常工作中或者面试中可能会遇到的数据类型的高级应用讲解和分享一下,希望对各位小伙伴或者童鞋们,有所帮助或者参考。好了,废话不多说,直接进入今天的主题:python数据类型的高级应用。
2.数据类型的高级应用
2.1字符串到复杂类型的转换
1.使用 json 模块:将 JSON 字符串转换为 Python 对象(如字典、列表)。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程9-数据类型高级应用 - 下篇
'''
# 3.导入模块
import json
json_str = '{"name": "Alice", "age": 30}'
data = json.loads(json_str)
print(data) # 输出: {'name': 'Alice', 'age': 30}
🚀运行结果:

2.使用 ast.literal_eval:安全地将字符串解析为 Python 字面量(如列表、字典)。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程9-数据类型高级应用 - 下篇
'''
# 3.导入模块
import ast
s = "[1, 2, 3]"
result = ast.literal_eval(s)
print(result) # 输出: [1, 2, 3]
🚀运行结果:

2.2自定义类类型转换
定义 int 、float 、str 等魔术方法,控制对象如何转换为其他类型。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程9-数据类型高级应用 - 下篇
'''
# 3.导入模块
class Temperature:
def __init__(self, celsius):
self.celsius = celsius
def __int__(self):
return int(self.celsius)
def __str__(self):
return f"{self.celsius}°C"
temp = Temperature(25.5)
print(int(temp)) # 输出: 25
print(str(temp)) # 输出: 25.5°C
🚀运行结果:

2.3使用 pydantic 或 dataclasses
1.pydantic:自动验证和转换数据类型。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程9-数据类型高级应用 - 下篇
'''
# 3.导入模块
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
# 自动将字符串 "30" 转换为整数
user = User(name="Alice", age="30")
print(user.age) # 输出: 30
🚀运行结果:

2.dataclasses:结合类型注解实现类型转换。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程9-数据类型高级应用 - 下篇
'''
# 3.导入模块
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
p = Point(x="1", y="2") # 字符串会引发类型不匹配警告(需手动转换)
print(p) # 输出: Point(x=1, y=2)
🚀运行结果:

2.4切片
切片是一种从序列中提取子序列的方式,可以通过一个范围来访问列表、元组、字符串等序列。切片语法为 [start:stop:step]。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
a = [1, 2, 3, 4, 5]
b = a[1:4] # 获取索引为 1~3 的元素,即 [2, 3, 4]
c = a[:3] # 获取前三个元素,即 [1, 2, 3]
d = a[::2] # 获取每隔一个元素的所有元素,即 [1, 3, 5]
print(b,c,d)
🚀运行结果:
2.5解包
解包是一种将多个值从容器中提取并分配给多个变量的技巧。可以在变量名前添加 * 或 **,将可迭代对象解包成单独的变量。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
a, *b, c = [1, 2, 3, 4, 5] # a=1, b=[2, 3, 4], c=5
print(a,b,c)
🚀运行结果:

2.6列表推导式
列表推导式是一种使用简洁的语法生成新列表的方法。它可以使用 for 循环和条件表达式来过滤和转换列表中的元素。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
a = [x**2 for x in range(10) if x % 2 == 0] # [0, 4, 16, 36, 64]
print(a)
🚀运行结果:

2.7字典推导式
字典推导式是一种使用简洁的语法生成新字典的方法。它可以使用 for 循环和条件表达式来构建键值对。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
a = {x: x**2 for x in range(10) if x % 2 == 0} # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
print(a)
🚀运行结果:

2.8生成器
生成器是一种可以迭代的对象,它在运行时动态生成数据,而不是先生成所有数据,然后再进行迭代。使用 yield 关键字可以将函数转换为生成器函数。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
f = fibonacci()
for i in range(10):
print(next(f)) # 输出前 10 个斐波那契数列元素
🚀运行结果:

2.9装饰器
装饰器是一种在不修改函数源代码的情况下,扩展函数功能的方式。它本质上是一个函数,用于接收一个函数作为参数,并返回一个新的函数。
💎示例代码:
python
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程7-数据类型高级应用
'''
# 3.导入模块
def add_one(func):
def wrapper():
return func() + 1
return wrapper
@add_one
def get_number():
return 1
print(get_number()) # 输出 2
🚀运行结果:

3.小结
今天又介绍了一些日常工作或者面试中可能遇到的一些其他高级数据类型的应用,有几个非常简单容易上手,但是有几个就需要好好理解消化,为后续的学习或者面试夯实基础。
好了,时间不早了,今天就分享和讲解到这里。希望对小伙伴或者童鞋们的有所帮助或者参考。