python数据结构与算法分析 第一章 导论
第一章 导论
| 运算符 | 说明 |
|---|---|
| ** | 幂 |
| // | 取整 |
| % | 取余 |
| ^ | 异或 |
-
两个整数相除时,其结果是个浮点数
-
标识符在编程语言中被用作名字。
- 以字母或者下划线(_)开头
- 区分大小写
- 可以是任意长度
- 尽可能采用表达含义的名字
-
变量存的是指向数据的引用,而不是数据本身
-
有序集合:列表(list)、字符串(str)、元组(tuple)
-
无序集合:集合(set)和字典(dict)
列表
-
另个或者多个指向Python数据对象的引用的有序集合
-
异构:列表内可以是不同的类,例如
[1, 'a', {1:'a'}, True] -
运算
运算名 运算符 实例 索引 [] a = ['i', 'am', 'cool']a[1] # 'am'连接 + [1,2,3] + [4,5,6]#[1,2,3,4,5,6]重复
(注意浅拷贝问题)* [0] * 5[0,0,0,0,0]长度 len 切片 [:] 倒序 [::-1] ⚠️重复运算返回的结果是对序列中指向数据对象的引用的重复
a = [1,2,3] b = [a]*3 a[1] = 666 print(b) # [[1, 666, 3], [1, 666, 3], [1, 666, 3]] -
列表提供方法
方法名 用法 解释 append alist.append(item) insert alist.insert(index,item) pop alist.pop() pop alist.pop(index) sort alist.sort() reverse alist.reverse() del del a[index] index alist.index(item) count alist.count(item) remove alist.remove(item) 💁♂️reverse和[::-1]的区别
- reverse为alist.reverse(),无返回值,直接改变alist本身
- alist[::-1]是将alist的翻转格式复制给另一个变量,alist本身并未改变
字符串
-
零个或者多个字幕、数字和其他符号的有序集合
-
常用方法
方法名 用法 解释 center astr.center(w, item) count astr.count() ljust astr.ljust(w, item) rjust astr.rjust(w, item) lower astr.lower() upper astr.upper() capitalize astr.capitalize() find astr.find(item) split astr.split(schar) -
字符串不可被修改
元组(tuple)
- 异构数据序列(与列表类似)
- 不可修改(与字符串类似)
集合(set)
-
零个或多个不可修改的Python数据对象组成的无序集合
-
不允许重复元素
-
异构
-
支持的运算
运算名 运算符 解释 成员 in 长度 len | aset | bset & aset & bset - aset - bset <= aset <= bset -
常用方法
方法名 用法 解释 union aset.union(bset) 并集 | intersection aset.intersection(bset) 交集 & difference aset.difference(bset) 差集 - issubset aset.issubset(bset) 子集 <= add aset.add(bset) 添加元素 remove aset.remove(item) 移除元素 pop aset.pop() 随机移除 clear aset.clear() 清除所有
字典(dict)
-
无序结构
-
运算
运算名 运算符 解释 [] in del -
方法
方法名 用法 解释 keys values items get adict.get(k) get adict.get(k, alt)
输入与输出
- input函数返回的值是一个字符串
- 格式化字符串
控制结构
- 迭代
- while
- for
- 分支
- if esle
异常处理
- try except
- raise
类
-
__init__构造方法:定义了数据对象的创建方式
-
self一个总是指向对象本身的特殊参数
必须为第一个形参
在调用使u,不需要提供相应的实参
-
打印类
class Fraction: def __init__(self, top, bottom): self.num = top self.den = bottom test = Fraction(3, 5) print(test) # <__main__.Fraction object at 0x000001C126ACB4C0>之前(多久之前就不考究了)版本是
instance(实例),现在是object(对象) -
__str__将对象转化成字符串的方法
例如:当打印(print)或者使用str方法 类的实例化对象时,会调用该方法的结果
-
__add__重写,两个实例对象相加的方法(+)
-
__eq__重写判断两个类是否相等的方法
继承
子类可以从父类继承特征数据和行为,父类也叫超类
-
super().__init__()继承父类的init方法 -
类的构造方法
__init__总是先调用其父类的构造方法,然后才处理自己的数据和行为

浙公网安备 33010602011771号