常用的数组方法
list.append(x)向数组追加元素
list.extend(L)向数组list追加数组
list.insert(i, x)向数组指定位置插入元素
list.remove(x)移除第一个相同元素
list.index(x)获取元素的索引
list.count(x)元素x出现的次数
list.reverse()将数组倒序list.copy()返回数组的副本sort(key=None, reverse=False)将数组排序,可指明是否反向排序
list.pop([i])移除并返回该位置元素,如果不传位置,则表示最后一位。list.clear()清空数组
把数组当作栈使用
1 | stack = [3, 4, 5] |
使用队列(先进先出)
其中from collections import deque表示从collections包中导入deque函数
简单的创建数组
前面介绍的创建的数组方法如下。1
2
3
4
5
6squares = []
for x in range(10):
squares.append(x**2) # x**2表示x的2次幂
...
squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
如何简便的创建?1
2
3squares = [x**2 for x in range(10)]
squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
tuple (元组)
元组和数组非常相似,不过tuple一旦初始化后,就不能再更改,没有append,insert方法。其他方法等同于数组。元组用(x,x,..)表示。
怎么创建元组?有两种方式,见下图:
怎么建立多维元组?
需要注意的是,当元组中占有一个元素时,务必记得在第一个元素后追加逗号.1
2t='maplejaw',
t=('maplejaw',)
在数组中创建元组:1
2[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
简便算法不仅可以使用for语句,还可以使用if语句。
等同于1
2
3
4
5
6
7
8combs = []
for x in [1,2,3]:
for y in [3,1,4]:
if x != y:
combs.append((x, y))
...
combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
del语法
在数组中使用del,可以移除元素。不同于pop(),del 可以移除一组元素。1
2
3
4
5
6
7
8
9
10a = [-1, 1, 66.25, 333, 333, 1234.5]
del a[0]
a
[1, 66.25, 333, 333, 1234.5]
del a[2:4]
a
[1, 66.25, 1234.5]
del a[:]
a
[]
del还可以删除变量
dict 字典
所谓字典即Java中的Map,通常以键值对(key-value)保存。以{X:Y,X:Y,...}形式表示。1
2d = {'name': 'maplejaw', 'age': 20, 'city': 'shanghai'}
print(d['name']) # maplejaw
使用简化方式初始化。1
2{x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
还可以使用dict函数来初始化字典。
传入元素为元组的数组:1
2>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}
还可以如下形式创建:1
2dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'jack': 4098, 'guido': 4127}
使用d.keys()可以获取key集合。
使用d.items()遍历键值对。1
2
3d=dict(sape=4139, guido=4127, jack=4098)
for k,v in d.items():
print(k,v)

Sets 集合
Sets可以理解为字典中所有key的集合,所以,不会有重复值。以{X,Y,...}形式表示。1
2
3basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
{'orange', 'banana', 'pear', 'apple'} # 不会有重复
我们可以判断集合中是不是有该key.1
2
3
4'orange' in basket
True
'crabgrass' in basket
False
可以使用set函数来初始化集合。set中传入一个数组即可。1
2
3a=set([1,3,6,9])
a
{1,3,6,9}
使用add来添加值,remove来移除值1
2
3
4
5a=set([1,3,6,9])
a.add(10)
{1,3,6,9,10}
a.remove(1)
{3,6,9,10}
两个集合之间可以求交集、并集等运算。
求交集:1
2
3
4
5
6a={1,2,4,3,8}
b={2,4,6,8,10}
a&b # 交集
{2,4,8}
a|b # 并集
{1,2,3,4,6,8,10}