一、概念
数据类型(Data Type) 是对数据的一种分类,它定义了:
- 这个数据可以存储什么样的值
- 可以对它进行哪些操作(算数、逻辑、索引、迭代等)
- 在内存中如何存储和管理这些数据
简单来说,数据类型告诉程序“这个值是什么”以及“可以对它做什么”。
二、基本数据类型
数值类型(Numeric Types)
用于存储数字。
- 整数
int:表示有小数点的数字,比如 42, -10。
- 浮点数
float:表示带小数点数字,比如 3.14, -0.001。
- 复数
complex:带有实部和虚部的数字,比如 2+3j。
数据类型示例:
1 2 3
| a = 5 b = 3.14 c = 2 + 3j
|
布尔类型(Boolean)
bool:只有两个值:True 和 False。
用于逻辑运算、条件判断等场景。
字符串(Text)
字符串是 不可变的,也就是说创建之后不能改变其中的字符
None 类型
NoneType:只有一个值 None,表示 “没有值” 或 “空值”。
常用于函数默认返回,或者初始化一个尚未赋值的变量。
这是 Python 里一种特殊的数据类型。
三、高级数据类型
列表(List)
list:有序、可变 的元素集合,可以存放不同类型的数据。
定义
1 2 3 4
| empty_list = [] empty_list2 = list()
nums = [1, 2, 3, 4]
|
使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| fruits = ["apple", "banana", "orange"] print(fruits) fruits.append("grape") print(fruits) print(fruits[0], fruits[-1]) fruits.remove("banana") print(fruits)
-- 输出 ['apple', 'banana', 'orange'] ['apple', 'banana', 'orange', 'grape'] apple grape ['apple', 'orange', 'grape']
|
列表推导式(List Comprehension)
语法:
1
| new_list = [expression for item in iterable if condition]
|
把一个可迭代对象处理成一个新的列表
示例
1 2 3 4 5
| squares = [x**2 for x in range(1, 6)] print(squares)
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0] print(even_squares)
|
元组(Tuple)
tuple:有序、不可变 的元素集合,一旦创建就不能修改。
定义
1 2 3 4
| empty_tuple = () empty_tuple2 = tuple()
coords = (10, 20, 30)
|
不能像列表那样修改,但适合表示固定的数据序列
注意:只有一个元素的元组必须写成 (value,),否则被认为是普通表达式。
示例
1 2 3 4 5 6 7 8 9 10 11
| point = (5, 10) x, y = point print(x, y)
single_element_tuple = (42,) print(single_element_tuple)
-- 输出 5 10 (42,)
|
字典(Dictionary)
dict:由 键–值对(key–value) 组成的无序集合,键必须是不可变类型(如 str,int,tuple)类似与书籍目录,通过目录查找对应的内容页码。
定义
1 2 3 4 5 6 7 8
| empty_dict = {} empty_dict2 = dict()
person = { "name": "Alice", "age": 30 }
|
示例
1 2 3 4 5 6 7 8 9
| ages = {"Jay-Z": 52, "Emanuel": 44} print(ages["Jay-Z"]) ages["Emanuel"] = 45 ages["Taylor"] = 32 print(ages.get("Unknown", "unknown"))
-- 输出 52 unknown
|
字典推导式(Dict Comprehension)
语法:
1
| new_dict = {key_expr: value_expr for item in iterable if condition}
|
可以用另一个可迭代对象快速构建字典
示例
1 2 3
| square_dict = {x: x**2 for x in range(1, 6)} print(square_dict)
|
集合(Set)
set:集合是 无序、去重 的结构,可以快速进行成员检查和集合运算
定义
1 2 3 4
| empty_set = set()
fruits = {"apple", "banana", "orange"}
|
示例
1 2 3 4
| s = {1, 2, 3} s.add(4) s.remove(2) print(3 in s)
|
集合推导式(Set Comprehension)
语法:
1
| new_set = {expression for item in iterable if condition}
|
类似列表推导式,但生成的是集合,会去除重复项
示例
1 2
| unique_squares = {x**2 for x in range(1, 11)} print(unique_squares)
|
对比
| 类型 |
是否有序 |
是否可变 |
推导式语法 |
构建空对象 |
list |
有序 |
是 |
[x for …] |
[] / list() |
tuple |
有序 |
否 |
无内建推导式(用生成器 + tuple()) |
() / tuple() |
dict |
(有顺序保证) |
是 |
{k:v for …} |
{} / dict() |
set |
无序 |
是 |
{x for …} |
set() |