复习(三) 数据结构
2019-02-18 18:42:47
List
list.append() | |
list.insert(i,x) | |
list.extend(L) | 相当于a[len(a):]= L |
list.pop([i]) | 从列表的指定位置删除元素;删除最后一个元素并返回其值 |
list.remove(x) | 移除指定元素x,第一次出现 |
list.reverse() | 反置 |
list.sort() | 排序 |
list.clear() | 清除 |
list.copy() | 复制 |
list.count(x) | 计数 |
list.index(x) |
报序 |
del 通过索引来删除
列表推导式
>> vec = [1,2,3] >> [x*2 for x in vec] [2,4,3]
#多个表达式
[[x,x**2] for x in L]
Out[25]: [[1, 1], [2, 4], [3, 9]]
#逐个调用某方法
fruit = ['banan','apple','peal']
[ff+'00' for ff in fruit]
Out[27]: ['banan00', 'apple00', 'peal00']
#其他技巧
>>> vec1 = [2, 4, 6] >>> vec2 = [4, 3, -9] >>> [x*y for x in vec1 for y in vec2] [8, 6, -18, 16, 12, -36, 24, 18, -54] >>> [x+y for x in vec1 for y in vec2] [6, 5, -7, 8, 7, -5, 10, 9, -3] >>> [vec1[i]*vec2[i] for i in range(len(vec1))] [8, 12, -54]
#矩阵的转置
切片法:
[[row[i] for row in matrix] for i in range(len(matrix[0]))]
Tuple
以逗号隔开的数据,输入可以不用加 ();
类型不可变
Set
空集合用 set() ,{} 表示空字典;
集合用于去重;
集合操作 交差并补& - | ^;
集合也可以用推导式;
;类型不可变;
Dict
None
遍历技巧:
for k,v in dict.items():
序列索引和值:
for n,v in enumerate(List):
print(n,v)
同时遍历多个序列:可以使用zip()
qusetion = ['Who?','Where?','When?'] answer = ['Me','School','Today'] for q,a in zip(qusetion,answer): print(q,a) Who? Me Where? School When? Today