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.

