Python Tips
Python使用小技巧,不定期更新。
iterable对象相关
Python中很多操作对象都可以是iterable对象,iterable对象是能被内建函数iter()
接收作为参数的对象,包括常用的list
,tuple
,dict
,str
等。
使用列表表达式
别再反复写for ... in ...:
从旧list生成新list了!由iterable对象生成新iterable对象时,请使用列表解析式!形式:
1 | # 更简单生成一个新iterable对象 |
for
遍历带序号
可以配合内建函数enumerate()
可以带序号的for
遍历:
1 | for i, item in enumerate(item_list, start=0): # 默认start=0,从第一个元素开始 |
lambda表达式的应用
lambda表达式只应该用来写非常简单的函数,作为表达式而非代码块!
对list按照指定元素排序
使用内建函数sorted()
对list进行排序,返回排序后的新list。
1 | lst = ['abc3', 'def1', 'ghi9', 'jkl2', 'mno5'] |
argparse模块的基本用法
使用argparse
进行python命令行参数解析:
1 | import argparse |
常用参数说明
这里列出几个常用参数说明,更多查阅官方文档。
argparse.ArgumentParser()
- usage:显示在help menu中的用法,如下面的字符串:
python demo.py [-h] --input <input_path>
- description:字符串,程序的介绍
- usage:显示在help menu中的用法,如下面的字符串:
parser.add_argument()
- 第一个参数:flag字符串,如
'--input'
- type:字符串,flag对应参数的类型
- help:字符串,在help menu里显示的flag说明
- required:布尔值,是否为必要参数
- dest:字符串,进行解析后返回
args
对象中对应flag参数的属性名
- 第一个参数:flag字符串,如
定位参数与可选参数
用parser.add_argument()
创建新flag时,使用'-'
或'--'
开头对应可选参数,分别为短名称与场名称,实际没有输入可选参数时flag对应参数为None
;不使用上述两种符号开头的flag为定位参数,按照输入顺序进行解析。
比如sum.py
有两个定位参数x
和y
,将两数相加,此外有一个可选参数--save_to
决定将输出保存到某处。
使用方式可以写成:python sum.py [-h] x y [--save_to <save_path>]
有可选参数时:
1 | python sum.py 1 2 --save_to ./result/ |
命令行输出答案,并将输出保存到./result/
。
不加可选参数:
1 | python sum.py 1 2 |
只在命令行输出结果。
…