《Dive Into Python》笔记:关于元组与字符串

1. tuple(元组)
1)定义tuple与定义list方式相同,但元素用圆括号括起来;
2)tuple的元素与list一样按定义的次序进行排序,索引值也是从0开始;
3)负数索引与list一样从tuple尾部开始计数;
4)与list一样,也可使用切片;当分割一个tuple时,会得到一个新tuple;
5)不能向tuple增加元素,因为没有append或extend方法;
6)不能从tuple删除元素,同理,没有remove或pop方法;
7)可以使用index 来查找元素,也可使用in 来查看元素是否存在于tuple中;
8)tuple的好处是比list操作速度快,如果定义了一个值的常量集,唯一要做的是不断地遍历它,那么应该使用tuple代替list;
9)如果不需要修改的数据进行“写保护”,可使用代码更安全。使用tuple而不是list如同拥有一个隐含的 assert语句,说明这一数据是常量。如果必须要改变这些值,则需要执行tuple到list的转换;
10)tuple可在dictionary中做key,但list不行。因为dictionary key是不可变的,而tuple本身是不可改变的,所有list不能用做dictionary 的key。实际上只有字符串,整数或其它对dictionary安全的tuple才可以用作dictionary key;
11)tuples可用在字符串格式化中;
12)tuple到list再到tuple
   tuple可以转换成list,反之亦然。内置的tuple函数接收一个list,并返回一个有着相同的元素的tuple。而list函数接收一个tuple返回一个list,从效果上看,tuple冻结一个list,而list解冻一个tuple。
    从tuple转换为list: list((t)) # t是个tuple
    从list转换为tuple:  tuple((l)) # l是个list

2. 格式化字符串
   1)+ 连接前,后两个字符串;
   2)%s 字符串格式化符,%d 整数格式化符;
   3)试图将一个字符串与一个非字符串连接会引发一个异常,与字符串格式化输出不同,字符串连接只能与被连接
   4)%f 输出一个十进制浮点数,不指定精度时输出带6位小数。使用包含".2"精度,只输出带2位小数的浮点数。添加“+”在数值前显示一个正号或负号;

3. 映射list
   1)keys 方法返回一个包含所有键的list,这个list没有按dictionary定义的顺序输出,但它是一个list;
   2)values 返回一个包含所有值的list,和keys返回的list顺序相同;
   3)items 返回一个形如(key, value)组成的tuple的list,这个list包括dictionary中所有的数据;

4. 连接list 与分割字符
   1)不能join非字符串,join只能用于元素是字符串的list,它不进行任何数据的强制类型转换。连接一个存在一个或多个非字符串元素的list将引发一个异常。如:";".join(["%s=%s" % (k, v) for k, v in params.items()])
   2)split 与 join相反,它将一个字符串分割成多元素list。而分隔符会被完全去掉,没有在返回list中的任意元素中出现。 如:s.split(";") #将字符串s中含‘;’处分割
   3)split接受一个可选的第二个参数,它是要分割的次数;

posted @ 2011-09-06 18:22  jeff_nie  阅读(365)  评论(0编辑  收藏  举报