数据结构
1.列表
-
方法大赏
list.append(x)
list.insert(i,x)
list.remove(x) 移除第一个x,没有会抛出异常
list.clear()
list.pop([i]) 返回的是弹出的元素
list.index(x[,start[,stop]])
list.count(x)
list.extend(itereble) 使用可迭代对象中的所有元素来扩展列表
list.sort(key=None,reverse=False)
list.reverse()
list.copy() 返回列表的浅拷贝 -
列表作为栈使用十分高效,作为队列十分低效
可以用deque实现队列 -
列表推导式
[表达式 零个或多个for和if语句 ] 得出一个新列表,各语句与表达式之间空格隔开
[x for x in range(10) if x%2==0]
=》[0,2,4,6,8]
[(x,y) for x in [1,2,3] for y in [3,4,2] if x!=y]
=>[(1,3),(1,4),(2,3),(2,4),(3,4),(3,2)]
列表推导式可以使用复杂的表达式和嵌套函数
from math import pi
[str(round(pi,i)) for i in range(1,6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']
嵌套的列表推导式
matrix=[
[1,2,3],
[4,5,6],
[7,8,9]
]
#交换行列
[[row[i] for row in matrix] for i in range(4)]
#for i in range(4)相当于外层循环
zip函数,创建一个迭代器,实现行列交换,但数组中的每个元素都是元组
2. del 语句
a=[1,2,3]
del a[0]
del a[1:]
del a[0:1]
del a 删除a变量
3.元组和序列
- tuple,元组
tuple1=1,2,3
t=(1)==>得到的是1,不是(1),通过t=1,来获得一个元素的元组
一旦初始化就不能修改,但是可以让元组中的元素是可变对象,比如列表、字典。
t1=1,2,3
t2=t1,4
#t2是((1,2,3),4)
x,y,z=t1
4.集合
- 不重复元素组成的无序的集,基本用法包括成员检测和消除重复元素。
创建:a=set('1234567')
a={1,2,3,4,5,6,7}
创建空集合:不能用a={}
用set创建的集合是可变的,frozenset不可变。
传入set([iterable])的参数必须是可迭代的
集合也支持列表推导式
网友评论