常用的数组方法
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 | 3, 4, 5] stack = [ |
使用队列(先进先出)
其中from collections import deque
表示从collections包中导入deque函数
简单的创建数组
前面介绍的创建的数组方法如下。1
2
3
4
5
6 squares = []
for x in range(10):
2) # x**2表示x的2次幂 squares.append(x**
...
squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
如何简便的创建?1
2
32 for x in range(10)] squares = [x**
squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
tuple (元组)
元组和数组非常相似,不过tuple一旦初始化后,就不能再更改,没有append,insert方法。其他方法等同于数组。元组用(x,x,..)
表示。
怎么创建元组?有两种方式,见下图:
怎么建立多维元组?
需要注意的是,当元组中占有一个元素时,务必记得在第一个元素后追加逗号.1
2'maplejaw', t=
'maplejaw',) t=(
在数组中创建元组:1
2for x in [1,2,3] for y in [3,1,4] if x != y] [(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
8 combs = []
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
10-1, 1, 66.25, 333, 333, 1234.5] a = [
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
22 for x in (2, 4, 6)} {x: x**
{2: 4, 4: 16, 6: 36}
还可以使用dict
函数来初始化字典。
传入元素为元组的数组:1
2>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}
还可以如下形式创建:1
24139, guido=4127, jack=4098) dict(sape=
{'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
3'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} basket = {
print(basket)
{'orange', 'banana', 'pear', 'apple'} # 不会有重复
我们可以判断集合中是不是有该key.1
2
3
4'orange' in basket
True
'crabgrass' in basket
False
可以使用set
函数来初始化集合。set
中传入一个数组即可。1
2
31,3,6,9]) a=set([
a
{1,3,6,9}
使用add
来添加值,remove
来移除值1
2
3
4
51,3,6,9]) a=set([
10) a.add(
{1,3,6,9,10}
1) a.remove(
{3,6,9,10}
两个集合之间可以求交集、并集等运算。
求交集:1
2
3
4
5
61,2,4,3,8} a={
2,4,6,8,10} b={
# 交集 a&b
{2,4,8}
# 并集 a|b
{1,2,3,4,6,8,10}