01六大数据类型速览
Python3 把内存管理做得足够透明,却让类型差异成为性能与逻辑的隐形杠杆。先记住六兄弟的名字:
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
02不可变三剑客:改变它们只会生成新对象
2.1 ► 数字(Number)Python3 里整数只有一个类型 int,不存在 long。布尔值 bool 是 int 的子类,可以与数字做加减乘除,但别忘了 True + False 会得到 1 而不是 True。
```python
a, b, c, d = 20, 1.5, True, 4+2j
print(type(a))
print(type(b))
print(type(c))
print(type(d))
```
想精确判断 int 类型,用 isinstance() 比 type() 更灵活:后者不会把子类当父类,前者会。
2.2 ► 字符串(String)与元组(Tuple) 字符串与元组一旦创建,任何尝试修改的操作都会返回新的对象。例如 s = "hello"; s += " world" 之后,s 指向了一个全新的字符串。元组同样如此,t = (1, 2); t[0] = 3 会报错,因为元组不支持就地修改。
03可变三兄弟:在原地改头换面
3.1 ► 列表(List)列表是最典型的可变数据结构,元素可以随时增删改。它的方法丰富到可以当小型数据库用,但也要警惕循环引用带来的内存泄漏。
3.2 ► 字典(Dictionary)字典以键值对形式存储,值可以随时被替换,甚至键也能动态增删。它查得快、改得快,是函数默认参数和闭包最爱的容器。
3.3 ► 集合(Set)集合里的元素唯一,既不允许重复也不允许重复的子集。它最擅长大规模去重与交并差运算,但要注意不可哈希的限制——字典的键必须是可哈希类型。
04类型转换:从 int 到 float,再到 bool 的日常把戏
把整数变浮点:float(1) → 1.0
把浮点变整数:int(1.9) → 1(向下取整),int(1.8) → 1(舍弃小数)
复数部分由 a + bj 或 complex(a, b) 生成,实部与虚部均为浮点。
Python 在混合运算时会把整数自动提升为浮点,所以 4 / 2 结果是 2.0 而不是 2;若想强制整除,用双斜杠 //。
一行多赋值、类型可变的特性让 Python 代码既简洁又灵活,却也埋下了类型推断的陷阱——写函数时务必注明参数类型与返回类型,用类型注解给 IDE 一条明路。
原创文章,作者:马超,如若转载,请注明出处:http://m.gaochengzhenxuan.com/keji/3696.html