python基础文字教程_python基础教程(五)

字符串基本操作

所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作。但是,请注意字符串都是不可变的。

字符串的方法:

字符串从string 模块中“继承”了很多方法,这里只介绍一些特别有用的。

1、find

find 方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1.

48304ba5e6f9fe08f3fa1abda7d326ab.png

>>> '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

48304ba5e6f9fe08f3fa1abda7d326ab.png

2、join

join 方法是非常重要的字符串方法,它是split方法的逆方法,用来在队列中添加元素:

48304ba5e6f9fe08f3fa1abda7d326ab.png

>>> 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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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的逆方法,用来将字符串分割成序列。

48304ba5e6f9fe08f3fa1abda7d326ab.png

>>> '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']

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 函数,通过其他映射(比如其他字典)或(键,值)这样的序列对建立字典。

48304ba5e6f9fe08f3fa1abda7d326ab.png

>>> items = [('name','gumby'),('age',42)]

>>> d =dict(items)

>>>d

{'age': 42, 'name': 'gumby'}

>>> d['name']

'gumby'

48304ba5e6f9fe08f3fa1abda7d326ab.png

dict函数也可以通过关键字参数来创建字典,如下例所示:

>>> d = dict(name ='gumby', age=42)

>>>d

{'age': 42, 'name': 'gumby'}

字典示例:

48304ba5e6f9fe08f3fa1abda7d326ab.png

#简单数据库

#使用人名作为键的字典,每个人用另一个字典表示,其键‘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) oraddress (a)?p

#打印结果

zhangsan's phone number is 2341.

48304ba5e6f9fe08f3fa1abda7d326ab.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值