chapter 2
1、分片:序列变量,字符串,列表,元组,集合。。都可以使用分片来访问指定的数据项,分片三种方式:seq[]访问某个数据项,seq[-1]表示访问序列最后一个数据项,seq[-2]倒数第二个数据项。
seq[start:end],从索引start开始访问,到end(不包括)结束。seq[:]表示访问序列所有数据项,seq[2:]从索引2到最后一个数据项(包括),seq[:7]从数据项第一个到7(不包括)。此种方式只允许沿着序列的正方向访问数据项,尽管可以利用负数从反方向的角度表示数据项。seq='123456789',seq[-1:-4]写法是错误的,以为可以从序列反方向访问数据项,只可以
seq[-4:-1]正向访问。
seq[start:end:step],以步长step访问序列。step为正时,表示起点为序列正向开始访问,为负时从序列反方向访问.总而言之,step可以有正负正是弥补了第二种方法中只可以正向访问的不足。
字符串,列表,元组,集合等序列都可以采用上去三种分片的方法。
2、使用字符串的众多成员函数进行操作时,这些函数的返回值一般是该字符串的一个副本,即原字符串并不会发生变化,更准确的说就是原字符串的指向并未发生变化,还指向原来的对象。因为字符串对象是固定的,不变的。egg:
s='i am Writing' s.lower() 此时s仍然指向原对象'i am Writing',调用s.lower()函数只是将s指向的对象copy一份,然后将所有大写字母转化为小写,返回转化后的字符串。除非s又重新指向了新的字符串,像s=‘ewf’,否则,像字符串这种固定类型通过调用自身的成员函数,因为并未重新指向别的对象,所以访问s还是访问原先的对象。对于可变的list就不一样了,list.sort()称为原地排序,会修改list对象中的各个数据项。调用成员函数可能会对自身对象产生改变。
3、字符串的格式化输出:format()
'hello{0}{1}'.format('nust','nanjing')
list=[12,23,90,'22']
'hello{0[1]}{0[3]}'.format(list)
d={'animal':'elephant','weight':12000}
>>> 'The {animal} is {weight}'.format(**d)#**成为映射拆分,d是字典,将字典拆分为键—值,然后在键处填入键值
'The elephant is 12000'