1、列表推导式
今天在看代码时看到如下语句:
arr = [[col for col in range(num)] for row in range(num)]
这是Python中典型的使用列表推导式来生成一个初始化的二维列表。
这里arr=[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
Python是一门追求简洁的语言,使用列表推导式可以生成列表,具体语法如下:
var_name = [out_exp_res for out_exp in input_list if condition]
out_exp_res: 列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list: 迭代input_list将out_exp传入out_exp_res表达式中。
if condition: 过滤条件,可以省略。
Python中生成数组除了可以使用列表推导式之外还可以使用numpy来生成。
import numpy as np
arr = np.zeros([10,10])
以上可以生成一个10x10的初始化为0的二维数组。
Python中除了有列表推导式之外,还有集合推导式、字典推导式。
d = {values:key for key,values in a.items()}
L=[1,1,1,2,2,2,3,4,5,6,7]
s = {i for i in L}
2、Python中random模块
random.randint(1,9) | 随机取一个整数,包括首尾 |
---|---|
random.uniform(1,9) | 随机取一个小数,包括首尾 |
random.choice(list) | 随机取list中的一个元素,支持字符串、列表、字典、元组、集合 |
random.sample(list,num) | 随机取list中的num个元素,支持字符串、列表、字典、元组、集合 |
random.shuffle(list) | 将list中顺序随机打乱,只支持list |
3、python的三元表达式
val_A if condition else val_B
常用三元表达式来简写if语句
4、Python的list中常用方法
删除list中元素可用两种方法
list.remove(obj) //obj必须为list中的元素
del list[index] //根据下标删除元素
5、numpy
查看数组维度的方法
import numpy as np
np.shape(a)
numpy中的column_stack与row_stack方法
import numpy as np
a=np.array([1,2,3])
a=np.array([4,5,6])
a=np.array([7,8,9])
aa=np.column_stack((a,b,c)) //按列生成二维矩阵
bb=np.row_stack((a,b,c)) //按行生成二维矩阵
// 最后aa=array([[1,4,7],[2,5,8],[3,6,9]])
// bb=array([[1,2,3],[4,5,6],[7,8,9]])
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
详细请看https://www.cnblogs.com/antflow/p/7220798.html
numpy.meshgrid()
numpy.shape()
由numpy.array()产生的数组,可以使用如下方法快速改变数组内多个元素的值(在list中无效)
a[a<4]=0
6、os/sys模块
os.path.splitext(“文件路径”) 分离文件名与扩展名;默认返回(fname,fextension)元组
7、Python2与3的区别
除法:python3中不管操作数中有没有浮点数,都按浮点数除法计算,而python2中若操作数中没有浮点数时,按照向下取整进行,只有操作数中存在浮点数时才按浮点数除法计算。