复习(三) 数据结构

时间:2021-10-02 10:34:33

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