写python过程中常用的一些语法,数据结构等等积累。
不断补充..
1. 编码问题
unicode和string
unicode转string:
str.encode("utf-8")
string转unicode
unicode(str,"utf-8")
2. 文件路径
1) 绝对路径和相对路径
#绝对转相对
print os.path.relpath("/User/Lychee/my_pictures/a0.txt")
#../my_pictures/a0.txt
#相对转绝对
path = "./my_pictures/a0"
print os.path.abspath(path)
#/User/Lychee/my_pictures/a0.txt
2)文件路径
#取文件夹下所有文件
path = './my_pictures'
image_paths = [os.path.join(path, f) for f in os.listdir(path)]
3. 对复杂数据结构排序(参考链接博客)
4. 常用数据类型
1) 内置数据类型:数字、布尔值、字符串
2) 三种更复杂的数据结构
元组tuple
一系列python数据类型按照顺序组成的序列,用小括号表征,例如(1, ‘abc’, 0.4)是一个包含三个元素的元组,元组中数据类型不必统一。假设上述元组为t,则t[0] = 1, t[1] = ‘abc’,也就是说可以直接索引取值。列表list
和元组在功能上基本相似,但列表用[]来组织数据,例如[1, ‘abc’, 0.4]。另外,python允许在访问列表时同时修改列表里的数据,而元组则不可以。字典dictionary
字典包含多组键(key)值(value)对,用{}来容纳这些键值对。如{1:’1’, ‘abc’:0.1, 0.4:80}。字典中的键是唯一的,但是没有数据类型的要求。而查找某个键对应的值时与元组或列表的访问方式类似。比如d[1] = ‘1’; d[‘abc’] = 0.1
3) 成员运算:针对python复杂数据结构的运算
通过运算符in询问是否有某个元素在元组或者列表里面出现;或者检视某个键是否在字典里存在
>>> l = [1, 'abc', 0.4]
>>> t = (1, 'abc', 0.4)
>>> d = {1:'1', 'abc':0.1, 0.4:80}
>>> 0.4 in l
True
>>> 1 in t
True
>>> 'abc' in d
True
>>> 0.1 in d #in只能考量dic中是否有key,而不能考量是否有value
False
5. numpy 备忘
(1) asarray
#list转array
>>> a = [1,2]
>>> numpy.asarray(a)
array([1, 2])
#类型转换
>>> a= [1,2]
>>> numpy.asarray(a,'f')
array([ 1., 2.], dtype=float32)
>>> numpy.asarray(a,'i')
array([1, 2])
6. 关于matplotlib
- 绘制子图
import matplotlib.pylab as plt
plt.subplot(1,2,1) #a subplot with index 1 in a 1*2 plot grid