Skip to content

数据类型

https://docs.python.org/zh-cn/3/library/stdtypes.html

1. 数字

数字对象是不可变的;一旦创建,其值就不再改变。 数字分为以下几种类型:

  1. int 整型、整数
    • 比如:x = 1
  2. bool 布尔型、逻辑值 FalseTrue
    • 比如:x = True
    • 布尔类型是整型的子类型,两个布尔值在各种场合的行为分别类似于数值 0 和 1,例外情况只有在转换为字符串时分别返回字符串 "False" 或 "True"。
  3. float 浮点型、小数
    • 比如:x = 0.5
  4. complex 复数(不常用,入门时忽略)

2. 序列

对于一个长度为 n 的序列
从左往右其索引为 0, 1, 2, ... , n-1
从右往左其索引为 -1, -2, -3 ...
可通过索引下标直接访问元素:访问序列 x 的第 i 位元素 x[i]
最后一个元素为 x[n-1] 或者 x[-1]

  1. string 字符串
    • 比如:x = 'hello'
    • 不可变序列
    • Python 中没有字符 char 类型,相应的只有长度为 1 的字符串类型
    • 字符串使用单引号 ' 或者双引号 " 引起来构成
  2. tuple 元组
    • 比如:x = ('a', 'b', 3)
    • 不可变序列
    • 元组常用小括号 () 括起并由逗号分隔的多个表达式构成
    • 不常用法:由逗号分隔的表达式即可构成元组:b = 1, 2 或者 a = 1, (不推荐使用)
  3. list 列表
    • 比如:x = ['a', 'b', 3]
    • 可变序列
    • 列表由用方括号 [] 括起并由逗号分隔的多个表达式构成
  4. bytes 字节串(不常用,入门时忽略)
  5. bytearray 字节数组(不常用,入门时忽略)

3. 集合

此类对象表示由不重复且不可变对象组成的无序且有限的集合。
常见的用途包括成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集、并集、差集与对称差集等等。

  1. set 集合
    • 比如:x = {'a', 'b', 3}
    • 可变集合,可通过内置的 set() 构造器或者大括号 {} 括起来创建
  2. frozenset 冻结集合(不常用,入门时忽略)

4. 映射

  1. dict 字典
    • 比如:x = {1: 'a', 2: 'b'}
    • 字典是可变的
    • 使用大括号内以逗号分隔 {键: 值} 对的方式创建
    • 字典的 key(键)必须是可哈希的,可作为字典 key 的类型有:int/float/string/tuplelist/set/dict 不可以作为 key
    • 数字类型用作 key 时遵循数字比较的一般规则:如果两个数值相等,就认为它们是同一个 key

进阶1. 通用序列操作

大多数序列类型,包括可变类型和不可变类型都支持下表中的操作。

运算结果备注
x in s如果 s 中的某项等于 x 则结果为 True,否则为 False
x not in s如果 s 中的某项等于 x 则结果为 False,否则为 True
s + ts 与 t 相拼接t 和 s 是相同类型的序列
s * nn * s相当于 s 与自身进行 n 次拼接n 为整数;当为负数时返回字符串/列表...
s[i]s 的第 i 项,起始为 0
s[i:j]s 从 i 到 j 的切片左闭右开区间,不包含 j
s[i:j:k]s 从 i 到 j 步长为 k 的切片
len(s)s 的长度
min(s)s 的最小项
max(s)s 的最大项
s.index(x[, start[, end]])x 在 s 中首次出现项的索引号(索引号在 start 和 end 之间)通常直接使用 s.index(x)
s.count(x)x 在 s 中出现的总次数

进阶2. 字符串常用方法

方法介绍备注
isalnum()判断字符串是否仅由字母数字组成返回 TrueFalse
isalpha()判断字符串是否仅由字母组成返回 TrueFalse
isdigit()判断字符串是否仅由数字组成返回 TrueFalse
join(iterable)将序列 iterable 拼接成一个新的字符串'+'.join([1,2,3]) 这个含义就是使用字符串 +[1,2,3] 序列拼接成字符串 1+2+3
lower()将字符串转为小写返回全小写副本
upper()将字符串转为大写返回全大写副本
swapcase()将字符串大小写互换
replace(old, new)字符串替换所有子字符串 old 都将被替换为 new。 如果给出了可选参数 count,则只替换前 count 次出现
split(sep=None)字符串分割使用 sep 作为分割字符串,默认以空格进行分割;返回列表
strip([chars])移除字符串前后指定字符默认移除前后的空格
zfill(width)字符串填充 0填充 0 使字符串长度达到 width

进阶3. 列表常用方法

方法介绍备注
append(x)追加元素 x 到列表的末尾返回 None
extend(t)用列表 t 扩展列表返回 None;相当于 list += t
insert(i, x)在索引 i 的位置插入元素 x返回 None
sort()对列表进行 原地排序返回 None
reverse()对列表进行 原地逆序返回 None

进阶4. 字典常用方法

d 表示一个字典实例,比如 d = {1: 'a', 2: 'b'}

方法介绍备注
d[key]返回 d 中以 key 为键的项如果不存在 key 则会引发 KeyError
d[key] = value将 d[key] 设为 value
del d[key]将 d[key] 从 d 中移除如果不存在 key 则会引发 KeyError
d.get(key, default=None)如果 key 存在于字典中则返回 key 的值,否则返回 default。如果 default 未给出则默认为 None,因而此方法绝不会引发 KeyError
d.items()返回由字典项 ((键, 值) 对) 组成的一个新视图常用于遍历字典