【学习笔记】Python一些技巧总结
一、基础操作
1. 字符串拼接
2. 几种取整方法
3. 保留指定位数小数
4. 矩阵的转置、旋转
matrix[:] = list(zip(*matrix[::-1])) # 顺时针
matrix[:] = list(zip(*matrix))[::-1] # 逆时针
matrix[:] = list(zip(*matrix)) # 转置
5. 数组及numpy切片
6. filter、zip、map作用及区别
7. Python2.x 与 3.x 版本区别
8. 注意区分is
和==
9. list初始化问题
- 当采用初始化:
得到结果:a = [[0] * 2] * 3 a[1][0] = 2
a = [[2, 0], [2, 0], [2, 0]]
- 当采用初始化:
得到结果:b = [[0 for _ in range(2)] for _ in range(3)] b[1][0] = 2
b = [[0, 0], [2, 0], [0, 0]]
- 问题原因:被乘号复制的对象都指向了同一块空间
10. Python语法的一些区别
11. os.path和sys.path的区别
- os.path 主要是 用于对系统路径文件的操作
- sys.path 主要是 对 Python 解释器的系统环境参数的操作(动态的改变 Python 解释器搜索路径)
12. 字典中items()和iteritems()区别
- 字典的
items()
:是可以将字典中的所有项,以列表方式返回。因为字典是无序的,所以用items方法返回字典的所有项,也是没有顺序的。 - 字典的
iteritems()
:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。 - 注意:Python3中已经废止了
iteritems()
13. with用法
二、面向对象(OOP)
1. getattribute、__getattr__具体功能及区别
三、常用输入输出(ACM向)
- 读取多行输入,并转化为list。例如:
3 4 5 7 3 2 4
2 4 5 4 3 7
4 5 6 3 2 2 3 4 3 6 3
读取方法:
while True:
try:
l = list(map(int, input().strip().split()))
except EOFError:
break
相关注解:
input()
:接受一个标准输入数据,返回为 string 类型。每次只读一行。strip()
:移除字符串头尾指定的字符(默认为空格或换行符)或字符序列;split()
:通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串;
- 对输入字符串排序后输出。例如
c h aa n d b
读取及输出方法:
while True:
try:
n=int(input())
mystr=list(map(str,input().strip().split()))
mystr.sort()
print(' '.join(mystr))
except EOFError:
break
或者,
from fileinput import input
for line in input():
a = line.split()
a = sorted(a)
s = ''
for i in range(len(a)-1):
s+=a[i]+' '
s += a[-1]
print(s.lstrip())
相关注释:
lstrip()
:用于截掉字符串左边的空格或指定字符。