环境说明
系统:win10
平台:python3
注:python3很多和python2不同。大部分返回list的函数不在返回list,而是返回一个支持遍历的对象,比如map、fiter之类的
一、数组按固定间隔划分成元包
1 | arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] |
输出结果:1
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
二、两个数组合并成元包
使用方式和python2不同1
2
3
4
5arr1 = [1, 2, 3]
arr2 = (4, 5, 6)
zipped = zip(arr1, arr2)
for x in zipped:
print(x)
输出结果:1
2
3(1, 4)
(2, 5)
(3, 6)
三、数组倒叙输出
1 | arr1 = [1, 2, 3, 4] |
输出结果:1
[4, 3, 2, 1]
我试了-2,-3,只有-1有效,说明是个特殊语法。而对于输入1,则是正序输出,输入2,3,4等没有输出。
四、数组倒叙选择输出
想不到更好的名字了1
2arr1 = [1, 2, 3, 4]
print(arr1[:-1])
输出结果:1
[1, 2, 3]
相当于去掉了最后一个字符,如果是-2,则去掉最后两个字符。
五、矩阵相乘dot
dot矩阵相乘非常奇葩,格式为dot(a,b)
当a,b为单个常数时,输出a*b
当b为一为矩阵时,是向量相乘,不懂?看例子1
当a和b都是二维或者二维以上的矩阵时,为正常矩阵相乘,见例子2
- 例一
1 | import numpy as np |
输出结果:1
[ 70 120 120]
- 例二
1 | import numpy as np |
输出结果:1
2[[ 77 88]
[142 163]]
六、链表函数list
这里只讲小细节
例11
2
3
4a = ["asdf","hgff"]
b = a
b[1] = "aas"
print(a)
输出结果:1
['asdf', 'aas']
可以看到,修改b之后,a的值跟着改变了。这个结果表明a只是将自身的指针赋值给了b,他们俩指的是同一块内存(c语言的说法),如果我想要改变b而不想修改a怎么办,如下使用list开辟一个新的链表空间。
例11
2
3
4a = ["asdf","hgff"]
b = list(a)
b[1] = "aas"
print(a)
输出结果:1
['asdf', 'hgff']