对list进行滑动取值
在序列分析中,设定一个窗口大小,滑动从list中的取值是常有操作,我们可以利用zip函数返回匹配的最短长度的特性,方便的从list中进行滑动取值
对多个list做笛卡尔积
可以使用嵌套的列推导方式对两个list做笛卡尔积,例如
但如果有更多list一起做笛卡尔积的话,列推导方式的代码可读性会比较差,我们可以使用itertools模块中的product,可以方便的完成这个笛卡尔积
list的copy和deepcopy
list直接使用=来“复制”时,当修改其中一个list中的元素,“另一个”list也会受到影响
这是由于变量l1和l2指向的是同一个list对象,因此,实际上对list的修改的是同一个list
我们可以调用list的copy方法,这样会对list进行一个复制
但是如果是嵌套list,那么只调用copy方法是不够的
这是由于copy方法只复制了第一层数据,如果是嵌套的话,那么里层指向的还是同一个list,这里我们需要copy模块中的deepcopy方法
deepcopy会完全将list复制下来,因此数据比较大的时候,非常占用内存,需要小心使用
dict与lambda表达式相结合
有时候我们需要对不同的关键字做出不同的操作,如关键字为increase时,我们对输入数字加1;关键字为decrease,我们对输入数字减1,我们可以使用if-else结构来实现
但当有太多可判断的条件时,大量if-else结构并不利于代码的维护,并且无法进行动态的修改。这时我们可以使用dict与lambda表达式相结合的方式来实现这样的操作,这样可以动态的对dict做出改变
删除swap
新增op,这里lambda表达式使用的是字符串形式
领取专属 10元无门槛券
私享最新 技术干货