type
status
date
slug
summary
tags
category
icon
password
Python 基础变量类型概述
字符串(str
)
Python 中的
str
类型是文本序列的一种,代表一串 Unicode 代码点的不可变序列。所有基于位置的访问(如索引、切片)以及字符串方法(如 .upper()
、.replace()
)都不改变原字符串,而是返回新的字符串实例。数字类型(int
、float
、complex
)
Python 提供三种内建的数字类型:整数(
int
)、浮点数(float
)及复数(complex
),其中布尔值(bool
)是 int
的子类型。整数具有无限精度;浮点数通常对应 C 语言的 double;复数由实部和虚部构成,两者均为浮点数。常用算术运算符包括 +
、-
、*
、/
、//
、%
及幂运算 **
等。可变类型和不可变类型
1. 不可变类型(immutable types)
- 数值类型:
int
、float
、complex
(整数、浮点数、复数)
- 字符串:
str
- 元组:
tuple
- 冻结集合:
frozenset
(不可变的 set)
- 布尔类型:
bool
- 字节序列:
bytes
特点:内容不能被原地修改,每次改变都会生成新对象。
例子:
2. 可变类型(mutable types)
- 列表:
list
- 字典:
dict
- 集合:
set
- 字节数组:
bytearray
特点:内容可以被原地修改(增删改元素等操作)。
例子:
3. 常用类型一览表
类型 | 可变性 |
int | 不可变 |
float | 不可变 |
bool | 不可变 |
str | 不可变 |
tuple | 不可变 |
frozenset | 不可变 |
bytes | 不可变 |
list | 可变 |
dict | 可变 |
set | 可变 |
bytearray | 可变 |
4.类型判断:isinstance
判断某个变量是否为某类型,推荐用
isinstance()
(比 type()
更灵活、支持继承判断):
可变序列 List 的操作
Python 的列表(
list
)是有序且可变的序列类型,允许存放任意类型的元素,并可包含重复值。运算 | 返回值 / 结果 | 备注 |
x in s | True / False | 成员检测:判断元素 x 是否存在于列表 s 中。 |
x not in s | True / False | 非成员检测:判断元素 x 是否不在列表中。 |
s + t | 新列表 | 连接:将列表 s 与 t 拼接,返回一个新列表。 |
s * n / n * s | 新列表 | 重复:将列表 s 的内容重复 n 次,返回一个新列表。 |
s[i] | 元素 | 索引访问:按位置获取元素 s[i] ,支持负索引。 |
s[i:j] | 子列表 | 切片:截取区间 [i, j) 内的元素,返回一个新列表。 |
s[i:j:k] | 子列表 | 扩展切片:以步长 k 从 i 到 j-1 提取元素,返回一个新列表。 |
len(s) | 整数 | 长度:返回列表中元素的个数。 |
min(s) / max(s) | 元素 | 极值:返回列表中最小或最大元素。 |
s[i] = x | None | 就地赋值:将索引 i 处的元素替换为 x 。 |
s[i:j] = t | None | 切片赋值:将 [i, j) 区间替换为可迭代对象 t 的内容。 |
s[i:j:k] = t | None | 扩展切片赋值:将 s[i:j:k] 对应元素替换为 t 中的元素。 |
del s[i] | None | 删除:移除索引 i 处的元素。 |
del s[i:j] | None | 删除切片:移除 [i, j) 区间内的所有元素。 |
del s[i:j:k] | None | 删除扩展切片:移除 s[i:j:k] 对应的所有元素。 |
s.append(x) | None | 尾部添加:在列表末尾追加元素 x (等同于 s[len(s):] = [x] )。 |
s.clear() | None | 清空:移除列表中所有元素(等同于 del s[:] )。 |
s.copy() | 新列表 | 浅拷贝:返回列表的一个浅拷贝(等同于 s[:] )。 |
s.count(x) | 整数 | 计数:返回元素 x 在列表中出现的次数。 |
s.extend(t) / s += t | None | 扩展:在列表末尾一次性追加可迭代对象 t 的所有元素。 |
s.index(x) | 整数 | 定位:返回元素 x 在列表中首次出现的索引(可选 start/end 参数限制查找范围)。 |
s.insert(i, x) | None | 插入:在索引 i 处插入元素 x (等同于 s[i:i] = [x] )。 |
s.pop() / s.pop(i) | 元素 | 弹出:移除并返回索引 i 处的元素,若不指定 i 则移除并返回最后一个元素。 |
s.remove(x) | None | 删除:移除列表中第一个值等于 x 的元素,若不存在则抛出 ValueError 。 |
s.reverse() | None | 就地反转:将列表中元素的顺序原地反转。 |
s.sort(key=None, reverse=False) | None | 原地排序:使用可选的 key 函数和 reverse 标志对列表进行排序。 |
list(iterable) | 新列表 | 构造:将可迭代对象转换为列表。 |
1.增
append()
—在末尾添加一个元素
extend()
—在末尾添加多个元素
insert()
—在指定位置插入一个元素
2.删
pop()
—删除并返回指定位置元素(无参数就默认最后一个)
remove()
—删除某个值(第一个遇到的)
del
—按下标删除
clear()
—清空列表
3.查
- 直接通过下标访问
index()
—查找某一值的下标(找不到就报错)
in
—判断是否存在
4.改
- 直接通过下标赋值
- 切片修改
汇总
不可变序列 Tuple 的操作
元组(
tuple
)是有序且不可变的序列类型,常用于存放固定集合的数据(如函数多值返回、记录数据等)。一旦创建,元组内的元素不可被修改或删除。运算式 | 结果 | 描述 |
x in s | True / False | 成员检测:判断元素 x 是否存在于元组 s 中。 |
x not in s | True / False | 非成员检测:判断元素 x 是否不在元组中。 |
s + t | (...) | 序列连接:将元组 s 和 t 合并为新元组。 |
s * n / n * s | (...重复 n 次...) | 重复:将元组内容重复 n 次,生成新元组。 |
s[i] | 元组中索引 i 对应的元素 | 索引访问:按位置获取元素,支持负索引。 |
s[i:j] | 子元组 (s[i],…,s[j-1]) | 切片:截取位置区间 [i, j) 的子序列。 |
s[i:j:k] | 带步长 k 的子元组 | 扩展切片:以步长 k 提取元素。 |
len(s) | 整数 | 长度:返回元组中元素的数量。 |
min(s) / max(s) | 元组中的最小 / 最大值 | 统计:返回元组中的最小或最大元素。 |
s.index(x) | 整数 | 定位:返回 x 在元组中首次出现的索引。 |
s.count(x) | 整数 | 计数:返回 x 在元组中出现的次数。 |
1. 索引与访问
2. 通用序列操作
长度
成员测试
3. 计数与索引
4. 连接与重复
映射类型dict的操作
1.增
- 新增建值对
2.删
pop()
—删除键并返回值
del
—删除键
clear()
—清空字典
3.查
- 直接查找(键不存在会报错)
get()
—安全查找(不存在返回None或你指定的值)
4.改
- 直接修改已有键值
5.其他常用操作
keys()
—输出所有键
values()
—输出所有值
items()
—输出所有对应的键和值
集合类型set的操作
1. 增
add()
— 增加一个元素
update()
— 增加多个元素
2. 删
remove()
— 删除指定元素(不存在会报错)
discard()
— 删除指定元素(不存在不会报错)
pop()
— 随机删除并返回一个元素
clear()
— 清空集合
3. 查
- 成员测试
in
— 判断元素是否存在
4. 改
集合本身没有直接修改某个元素的操作,只能通过“先删后加”间接实现。
如果想把2改成20,可以:
5. 其它常用操作
- 去重
- 交集、并集、差集
- 作者:sisui
- 链接:https://www.sisui.me//article/py-variables-strings-numbers
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章