Python 教程阅读笔记(四):数据结构

列表:

list.append(x)  将项加到列表最后

list.extend(L)

list.insert(i,x)

list.remove(x)

list.pop([i])  不指定弹出最后一个

list.index(x)

list.count(x)

list.sort()

list.reverse()

从上面可以看出,list可以很方便的用来实现栈的功能

append pop

可以用列表来实现队列,但效率不高,python提供了collections.deque 来提供队列的功能

from collections import deque

queue=dequeue([])

queue.append(x)

queue.popleft()

列表速构  [ item operation for item in list name if condition] 

del  listname[:]   切片

元组由括号()和里面的元素组成,不可交换,但可以可交换对象创建,如列表

元组打包t = 12345, 54321, 'hello!'

序列解包x, y, z = t  对任何序列都可成立

序列数据类型可索引和切片,包括str, bytes, bytearray, list, tuple, range

集合由{}和里面的元素组成,元素不可重复

补集语法a = {x for x in 'abracadabra' if x not in 'abc'}

集合的其他构造法:set('abracadabra')   {'a', 'r', 'b', 'c', 'd'}

        符号    空集创建     单元素创建        元素自动调整      用途                                         操作                                                                支持速构

列表   []        []                [value]          无                                                                见上面描述

元组   ()        ()                (value,)         无

集合   {}      set()            {value}         重复值被删除     测试是否是成员、删除重复值          集合操作,交(|)、并(&)、差(-)、对称差(^)       

字典   {}       {}              {key:value}                         未排序键值对,判断键是否存在       存,取,删除                                                      是

字典的其他构造方法:dict(sape=4139, guido=4127, jack=4098)

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])

循环技巧:

1.字典循环:

for k, v in knights.items() :

2.序列循环,获取位置索引

for i, v in enumerate(['tic', 'tac', 'toe']):

3.多个序列同时获取

for q, a in zip(questions, answers):

4.反向循环

for i in reversed(range(1, 10, 2)):

5.排序循环

for f in sorted(set(basket)):

while if  可以包含任何操作,而不仅是比较

in not in 是否值出现在序列中

is not is 比较对象是否相同

比较可串连

赋值不能在表达式中进行

原文地址:https://www.cnblogs.com/westwind/p/2497154.html