python基础学习笔记(五)
2013-04-20 14:05 虫师 阅读( ... ) 评论( ... ) 编辑 收藏
字符串基本操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作。但是,请注意字符串都是不可变的。
字符串的方法:
字符串从 string 模块中“继承”了很多方法,这里只介绍一些特别有用的。
1 、 find
find 方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回 -1.
>>> ' with a moo-moo here. and a moo-moo ther ' .find( ' moo ' ) 7 >>> title = " Monty Pyhon's Flying Circus " >>> title.find( ' Monty ' ) 0 >>> title.find( ' Python ' ) -1
2、 join
join 方法是非常重要的字符串方法,它是 split 方法的逆方法,用来在队列中添加元素:
>>> seq = [ ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' ] >>> sep = ' + ' >>> sep.join(seq) ' 1+2+3+4+5 ' >>> dirs = '' , ' usr ' , ' bin ' , ' env ' >>> ' / ' .join(dirs) ' /usr/bin/env ' >>> print ' C: ' + ' \\ ' .join(dirs) C:\usr\bin\env
3、 lower
lower 方法返回字符串的小写字母版。
如果想要编写“不区分大小写”的代码的话,那么这个方法就派上用场了 ----- 代码会忽略大小写状态。
>>> ' Trondheim Hammer Dance ' .lower() ' trondheim hammer dance '
4、 replace
replace 方法返回某字符串的所有匹配项均被替换之后得到字符串。
>>> ' This is a test ' .replace( ' is ' , ' eez ' ) ' Theez eez a test '
如果,你使用过文字处理工具里的“查找并替换”功能的话,就不会质疑这个方法的用处了。
5、 split
这是一个非常重要的方法,它是 join 的逆方法,用来将字符串分割成序列。
>>> ' 1+2+3+4+5 ' .split( ' + ' ) [ ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' ] >>> ' /usr/bin/env ' .split( ' / ' ) [ '' , ' usr ' , ' bin ' , ' env ' ] >>> ' using the default ' .split() [ ' using ' , ' the ' , ' default ' ]
6、 strip
strip 方法返回去除两侧(不包含内部)空格的字符串:
>>> ' internal white space is kept ' .strip() ' internal white space is kept '
字典
字典的使用
现实中的字段及在 python 中的字段都进行了构建,从而可以轻松查到某个特定的词语(键),从而找到它的意义(值)。
某些情况下,字典比列表更加适用:
# 表征游戏棋盘的状态,每个键都是由坐标值组成的元组;
# 存储文件修改次数,用文件名作为键;
# 数字电话 / 地址本
创建一个人名列表,以及四位的分机号码:
>>> names = [ ' zhangsan ' , ' lisi ' , ' wangwu ' , ' sunliu ' ] >>> numbers = [ ' 2313 ' , ' 9102 ' , ' 3158 ' , ' 4326 ' ] # 通过下下方法查询 >>> numbers[names.index( ' zhangsan ' )] ' 2313 '
创建和使用字典
字典可以通过下面方式创建
>>> phonebook = { ' zhangsai ' : ' 2313 ' , ' lisi ' : ' 9102 ' , ' wangwu ' : ' 3158 ' }
字典由多个键及与其对应的值构成,在上例中,名字是键,电话号码是值。
dict 函数
可以用 dict 函数,通过其他映射(比如其他字典)或(键,值)这样的序列对建立字典。
>>> items = [( ' name ' , ' gumby ' ),( ' age ' ,42 )] >>> d = dict(items) >>> d { ' age ' : 42, ' name ' : ' gumby ' } >>> d[ ' name ' ] ' gumby '
dict 函数也可以通过关键字参数来创建字典,如下例所示:
>>> d = dict(name = ' gumby ' , age=42 ) >>> d { ' age ' : 42, ' name ' : ' gumby ' }
字典示例:
# 简单数据库 # 使用人名作为键的字典,每个人用另一个字典表示,其键‘phone’和‘addr’分别表示他们的电话号和地址, people = { ' zhangsan ' :{ ' phone ' : ' 2341 ' , ' addr ' : ' foo drive 23 ' }, ' lisi ' :{ ' phone ' : ' 9102 ' , ' addr ' : ' bar street 42 ' }, ' wangwu ' :{ ' phone ' : ' 3158 ' , ' addr ' : ' baz avenue 90 ' } } # 针对电话号码和地址使用的描述性标签,会在打印输出的时候用到 labels = { ' phone ' : ' phone number ' , ' addr ' : ' address ' } name = raw_input( ' Name: ' ) # 查找电话号码还是地址? 使用正确的键: request = raw_input( ' phone number(p) or address (a)? ' ) # 使用正确的键: if request == ' p ' :key = ' phone ' if request == ' a ' :key = ' addr ' # 如果名字是字典中的有效键才打印信息: if name in people: print " %s's %s is %s. " % (name, labels[key], people[name][key])
------------------------
# 输入内容 >>> Name:zhangsan phone number(p) or address (a)?p # 打印结果 zhangsan ' s phone number is 2341.