常见的数据类型

一、概念

数据类型(Data Type) 是对数据的一种分类,它定义了:

  • 这个数据可以存储什么样的值
  • 可以对它进行哪些操作(算数、逻辑、索引、迭代等)
  • 在内存中如何存储和管理这些数据

简单来说,数据类型告诉程序“这个值是什么”以及“可以对它做什么”

二、基本数据类型

数值类型(Numeric Types)

用于存储数字。

  • 整数 int:表示有小数点的数字,比如 42, -10
  • 浮点数 float:表示带小数点数字,比如 3.14, -0.001
  • 复数 complex:带有实部和虚部的数字,比如 2+3j

数据类型示例:

1
2
3
a = 5       # int
b = 3.14 # float
c = 2 + 3j # complex

布尔类型(Boolean)

  • bool:只有两个值:TrueFalse
    用于逻辑运算、条件判断等场景。
1
flag = True

字符串(Text)

  • str:用于存放文本,由字符组成的序列。
    例如:
1
msg = "Hello, Python!"

字符串是 不可变的,也就是说创建之后不能改变其中的字符

None 类型

  • NoneType:只有一个值 None,表示 “没有值” 或 “空值”。
    常用于函数默认返回,或者初始化一个尚未赋值的变量。
1
result = 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) # [1, 4, 9, 16, 25]

even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares) # [4, 16, 36, 64, 100]

元组(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)
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

集合(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) # True

集合推导式(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()