1.4.1 [], 索引取值
1.4.2 [start : end], 索引范围取值
1.4.3 [::step], 切片的步长
1.4.4 切片操作符不会带来索引超出下标的异常
2 list.extend(iterable): 把另外一个序列追加到list中.
3 list.insert(index, object): 把一个元素object插入到list的index位置, 如果index是负数, 从后面向前数, 超过list下标后, 在末尾添
加
4 类型转换
4.1 list(iter) 把可迭代对象转换为列表
4.2 str(obj) 把obj对象转换成字符串(对象的字符串表示法)
4.3 unicode(obj) 把对象转换成Unicode字符串(使用默认编码), 使用u”汉字”可以得到其unicode编码
4.4 basestring() 抽象工厂函数, 不能被实例化, 不能被调用, 仅作为str和unicode的父类
4.5 tuple(iter) 把一个可迭代对象转换成元组对象
4.6 enumerate(iterable) 生成由iterable每个元素的index值和item值组成的元组, 可以使用for key, value in enumerate的方式进
行迭代
4.7 max(iterable, key=None) | max(arg0, arg1, …, key=None) 返回iterable或arg0…中的最大值, 如果要指定key, 必须是一个
可以传递给sort()方法的回调函数……要使用key, 必须使用key=method_name的方式传参, key指定的函数接收的参数是迭代的
当前元素, 在该函数中, 对元素进行处理, 返回一个对象, python会根据返回对象比较大小, 得到该结果最大的元素对应的list中的
元素
4.8 min同上面的max方法. 对于max和min方法, 如果是自定义类型, 又没有指定key, 那么默认是按照id(object)的结果计算的
4.9 reversed(sequence) 返回逆序访问的迭代器
4.10 sum(sequence, init=0) 返回sequence和可选参数init的总和, 等同于reduce(operator.add, sequence, init)
4.11 sorted(iterable, func=None, key=None, reverse=False) 接受一个可迭代对象, 返回一个有序列表, 可选参数func, key,
reverse含义和list.sort相同
4.12 zip([item0, item1, …, itemn]) 返回一个列表, [(item0, ), (item1, ), …, (itemn, )] 4.13 sort(cmp=None, key=None,
reverse=False) 将序列进行排序, cmp指定一个接受两个参数的回调函数, 该函数得到的两个参数是序列中的两个元素, 比较将
按照cmp指定的回调函数进行, 返回数字类型的比较结果, , , key指定一个接受一个参数的回调函数句柄, 该参数就是迭代到的元
素, 在比较之前, 将会根据这个回调函数对要比较的元素进行一次处理, 实际参与比较的是经过该回调函数处理之后的返回值.
reverse指示是否对比较结果进行逆序
5 利用已有功能函数定义动态参数的函数: method = lambda x, y: cmp(x + 10, y – 10), 调用时还是使用句柄加参数的方式:
method(x, y)
6 字符串: 如果先使用切片操作, 子串会被在内存中进行短时间的暂存, 可以通过id()得到值
7 比较: 普通字符串按照ascii值比较, Unicode字符串按照unicode值比较.
8 字符串切片, 下图是字符串切片的索引值, 如果开始或结束的索引值没有指定, 默认为0, 或-1. [::step]用于指定步长
9 成员操作符: in, not in, 可以判断一个子串是否在字符串中存在…使用find(), index(), rfind(), rindex()可以获得子串在源中的位
置
10 string模块有一些预定义的字符串: ascii_letters, ascii_lowercase, ascii_uppercase, digits
11 循环的改善: 如果循环的终止条件是不变的(一般都是不变的), 那么尽量不在循环终止条件中调用方法是一个好的习惯, 在大
量数据的情况下(5 * 10^8数据), 改善的循环效率提升了4秒左右, 平均计算得到改善后循环每次效率提升约为7.154 * 10^-8s 也
就是71.54 ns
12 for-else方式的循环, else子句会在所有的元素都被循环完成之后执行, 如果break, 就不执行
13 join可以用来连接字符串, 这样的效率是更高的, 因为+连接必须为每个字符串创建内存
14 +连接字符串是运行时连接, “str1””str2”的方式则是编译时连接字符串
15 普通字符串和unicode字符串连接, 会把普通字符串转换成unicode字符串进行连接
16 %格式化字符串的参数:
16.1 %c 转换成字符(ascii值, 或长度为一的字符串)
16.2 %r 优先使用repr()函数进行字符串转换
16.3 %s 优先使用str()函数进行字符串转换
16.4 %d / %i 转成有符号的十进制数
16.5 %u 转成无符号的十进制数 遇到负号添加-号
16.6 %o 转成无符号八进制数 遇到负号添加-号
16.7 %x / %X 转成无符号十六进制数(x|X的大小写决定转换后得到十六进制数中的字母的大小写) 遇到负数, 则转换得到的结果
中添加一个-号
16.8 %e / %E 转成科学计数法(e | E的大小写决定转换后得到的e的大小写)
16.9 %f / %F 转成浮点数(小数部分自然截断)
16.10 %% 输出%号
17 其他格式化操作符辅助指令(位于%和格式化标识的中间)
17.1 * 定义宽度或小数点精度”adfas%*dfasdf” % (5, 2.000000888)
17.2 – 用于左对齐
17.3 + 在正数前加+号
17.4 (sp) 在正数前显示空格
17.5 # 在八进制前加0, 十六进制前显示0x或0X, 取决于用的是x或X 比如: “integer:%#X!” % 1984
17.6 (var) 映射变量(字典参数)
17.7 m.n m是显示的最小总宽度, n是小数点后的位数
18 格式化字符串接收dict数据:”%(howmany)d days” % {“howmany”: 28}
19 字符串模板 s = Template(‘There are ${howmany} ${lang} Quotation Symbols’)
19.1 s.substitute([key = value, key = value…]) 这个函数必须提供所有的占位参数, 否则报错
19.2 s.safe_substitute([key = value, key = value…]) 和substitute功能是一样的, 都是转成得到一个字符串, 但是这个方法对参