前言
由于Python的数据结构较为灵活,长期使用java编程的我,有时候可能就搞混淆了。此时,记录一些骚操作。
不定长二维数组
array = [4,65,46,57,5];
array2d = [[]]*len(pages); #创建二维数组 [[], [], [], [],...,[]]
# print(array2d [0][0])
print(array2d )
for i in range(len(array2d )):
array2d [i]=[];
pass;
array2d[0].append(46);
array2d[2].append(35);
array2d[1].extend([46,68,23,24]);
print(array2d )
排序
- <数组,字典>的排序 [ {...},...,{...} ]
array = [
{'key':587,'value':'jack'},
{'key':364,'value':'jame'},
{'key':476,'value':'jane'},
{'key':355,'value':'johnny'}
]
array = sorted(array , key=lambda x:x['value'])
array .sort(array p,q: cmp(p['value'], q['value']))
- 排序后基于索引输出
- 好处:不改变原数组数据
import numpy as np;
y =np.array([24242, 43, 6, 46, 46, 4, 6, 4, 546]);
sortResult = np.argsort(y);
删除列表中元素等于某值(eleVal)的所有元素
def delete(array,eleVal): # 删除指定元素
idx = -1;
idx=array.index(eleVal)
while idx >= 0 :
del array[idx];
idx = -1;
try:
idx=array.index(eleVal);
except Exception as e:
print("[delete] end to remove eleVal '",eleVal,"'!");
pass;
delete(array,'j');
多维数组转换为一维数组
articleWords = [['文章', '数学'], ['权力']];
artcileWords = [i for item in articleWords for i in item]; # 二维词汇矩阵合并为一维数组 # 参考 :https://blog.csdn.net/kevin_7july/article/details/79289814
## output
['文章', '数学', '权力']