列表:
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 比较对象是否相同
比较可串连
赋值不能在表达式中进行