日常过程中总会遇到各种各种的问题,需要临时谷歌学习
收藏的学习链接记录第三期,主要是python的日常小技巧
①列表按列访问
exa=[[1,2,3], [4,5,6], [7,8,9]] for item in exa: print(item) exa2=list(zip(*exa)) for item in exa2: print(item)
就是里面的值变成元祖了···
如果需要改变可自行修改
②计算程序运行时间
import time time_start=time.time() #program time_end=time.time() print('totally cost',time_end-time_start)
单位:s
③忽略warning
import warnings warnings.filterwarnings("ignore")
Python 忽略warning警告错误 + 跳过报错继续执行程序 - 星涅爱别离 - 博客园
https://www.cnblogs.com/xingnie/p/12244978.html
④按照相同顺序打乱两个列表
import random a=[1,2,3,4] b=[5,6,7,8] c = list(zip(a, b)) random.shuffle(c) a[:], b[:] = zip(*c) print(a) print(b)
⑤对列表排序并保持索引
方法1:
import numpy as np arr = [1, 3, 5, 2, 4, 6] arr = np.array(arr) print (np.argsort(arr)) # 正序输出 print (np.argsort(-arr)) # 逆序输出
方法2:
nums = [4, 1, 5, 2, 9, 6, 8, 7] sorted_nums = sorted(enumerate(nums), key=lambda x: x[1]) idx = [i[0] for i in sorted_nums] nums = [i[1] for i in sorted_nums] print(idx) print(nums)
⑥正确深拷贝列表
浅拷贝和深拷贝的关系不赘述
正确复制
a=list(b)
a=b[:]
在函数调用、回溯算法时尤其明显
⑦对多维列表排序
l =[[126,4],[110,3],[215,4],[106,4],[333,3],[98,3]] l.sort(key=lambda x:(-x[1],-x[0])) #关键在这一行 print(l)
⑧matplotlib的颜色、线、坐标轴、labl设置
python中matplotlib的颜色及线条控制 - darkknightzh - 博客园
https://www.cnblogs.com/darkknightzh/p/6117528.html
写的很好
⑨scapy抓包分析
为了在linux上实现抓包分析,也是很烦呢
(转)python+scapy 抓包与解析 - 景木 - 博客园
https://www.cnblogs.com/jingmu/articles/7424787.html
python数据包之利器scapy用法! - 白桦林_HK - 博客园
https://www.cnblogs.com/baihualin/p/10730513.html
scapy自定义packet field解析 - 简书☆☆☆
https://www.jianshu.com/p/88e4df708970
可以自定义并解析数据包,很有展示型效果
⑩linux运行py文件
用./demo.py运行似乎比python demo.py更有份
当用./遇上 bash:./demo.py:Permission denied
需要$ chmod 77 demo.py
有的文件读写还要用到VIM
Vim 保存和退出命令 - 小氕 - 博客园
https://www.cnblogs.com/firstcsharp/p/10241132.html