python 32bit数据结构_python 数据结构

1 深入条件控制

小记:编程风格

使用 4 空格缩进,而非 TAB:在小缩进(可以嵌套更深)和大缩进(更易读)之间,4空格是一个很好的折中。TAB 引发了一些混乱,

使用空行分隔函数和类,以及函数中的大块代码,可能的话,注释独占一行

把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格:a = f(1, 2) + g(3, 4)

统一函数和类命名:推荐类名用 驼峰命名, 函数和方法名用 小写_和_下划线。

Python 的默认情况下,UTF-8最好

while 和 if 语句中使用:比较和包含。

比较操作符 in 和 not in 审核值是否在一个区间之内。

比较操作可以传递。例如 a < b == c 审核是否 a 小于 b 并且 b 等于 c。

逻辑操作符 and 和 or 组合,not 具有最高的优先级, or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。

逻辑操作符 and 和 or 参数从左向右解析,结果确定就停止。例如,如果 A 和 C 为真而 B 为假, A and B and C 不会解析 C。

可以把比较或其它逻辑表达式的返回值赋给一个变量,例如:

解释:and 和 or 参数从左向右解析,结果确定就停止。string1 or string2 为True,打印string2是值,后面忽略即string3。

比较序列和其它类型:序列对象可以与相同类型的其它对象比较。

首先比较前两个元素,如果不同,就决定了比较的结果;如果相同,就比较后两个元素,依此类推,直到所有序列都完成比较。

如果两个元素本身就是同样类型的序列,就递归字典序比较。如果两个序列的所有子项都相等,就认为序列相等。

如果一个序列是另一个序列的初始子序列,较短的一个序列就小于另一个。字符串的字典序按照单字符的 ASCII 顺序。

2 基本的列表对象方法

List列表基本操作概要:

list.append(x):元素添加到链表的结尾,相当于 a[len(a):] = [x]。

list.extend(L):给定列表所有元素添加,相当于 a[len(a):] = L。

list.insert(i, x):指定位置插入。其中list.insert(0, x)=插入链表首,list.insert(len(a), x)=list.append(x)=插入链表尾

list.remove(x):删除链表指定元素。

list.pop([i]):指定索引下删除元素,a.pop() 返回最后一个元素。

list.clear():删除所有元素。相当于 del a[:]。

list.index(x):返回链表首个值 x 的索引。

list.count(x):统计元素 x出现的次数。

list.sort():排序。

list.reverse():倒排链表。

list.copy():浅拷贝。等同于 a[:]。

操作运行代码:

List链表的多重共用

链表当作堆栈用:链表特性先进后出跟堆栈性质一致,进:append,出:pop:

程序实例演示:

链表当作队列使用:如上演示,知道链表具备先进后出的性质,即符合堆栈性质。大家记得否链表索引可以为负数,如此你是不是想到先进先出啦?对喽,这就是队列的性质我们完全可以当着队列用。列表这样用效率不高。在头部插入和弹出很慢,因为一个元素出队,要移动整个列表中的所有元素。要实现队列,使用 集合collections.deque,它为在首尾两端快速插入和删除而设计。例如:

程序运行实例:

列表推导:如下实例快速解析理解

链表做文本处理矩阵计算:交换行列

#由三个长度为 4 的列表组成的 3x4 矩阵,交换行列

3 del语句

del语句:不同于有返回值的 pop() 方法,其按索引来删除子项

4 元组、序列、集合和字典

元组和列表的区别:

元组:不同种类元素,不可变;

列表:相同种类的元素,可变

set集合

特点:set集合是无序不重复元素的集。

基本功能:关系测试和消除重复元素。还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。

集合创建:大括号或 set() 函数。注意:空集合的创建必须使用 set() 而不是 {}。{}可以用于创建空字典。

集合实例演示:

类似 列表推导式,这里有一种集合推导式语法:

字典

字典以 关键字 为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典本质是无序键值对 (key:value 对)集合,同一字典内键必须是互不相同的。

字典创建: {} 。

主要操作:据键存储和析取值。可用 del 来删除键:值对(key:value)。

排序: sorted(d.keys()) )。

检查字典:用 in 关键字检查字典中是否存在某个关键字。

字典实例演示:

dict() 构造函数可以直接从 key-value 对中创建字典:

5 循环技巧

字典循环,关键字和对应的值可以使用 items() 方法同时解读出来:

在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到:

同时循环两个或更多的序列,可以使用 zip() 整体打包:

需要逆向循环序列的话,先正向定位序列,然后调用 reversed() 函数:

要按排序后的顺序循环序列的话,使用 sorted() 函数,它不改动原序列,而是生成一个新的已排序的序列:

若要在循环内部修改正在遍历的序列(例如复制某些元素),建议您首先制作副本。在序列上循环不会隐式地创建副本。切片表示法使这尤其方便:

6 参考文献和推荐资料

Python 官方网站 :包含代码、文档和 Web 上与 Python 有关的页面链接该网站镜像于全世界的几处其它问题,类似欧洲、日本和澳大利亚。镜像可能会比主站快,这取决于你的地理位置

Python 包索引 :索引了可供下载的,用户创建的 Python 模块。如果你发布了代码,可以注册到这里,这样别人可以找到它

The Scientific Python : 项目包括数组快速计算和处理模块,和大量线性代数、傅里叶变换、非线性solvers、随机数分布,统计分析以及类似的包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值