python基礎(chǔ)學(xué)習(xí)筆記(五)
2013-04-20 14:05 ?蟲師 閱讀( ... ) 評(píng)論( ... ) 編輯 收藏?
字符串基本操作
所有標(biāo)準(zhǔn)的序列操作(索引、分片、乘法、判斷成員資格、求長(zhǎng)度、取最小值和最大值)對(duì)字符串同樣適用,前面已經(jīng)講述的這些操作。但是,請(qǐng)注意字符串都是不可變的。
?
字符串的方法:
字符串從 string? 模塊中“繼承”了很多方法,這里只介紹一些特別有用的。
?
1 、 find?
find? 方法可以在一個(gè)較長(zhǎng)的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果沒有找到則返回 -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 方法的逆方法,用來在隊(duì)列中添加元素:
>>> 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? 方法返回字符串的小寫字母版。
如果想要編寫“不區(qū)分大小寫”的代碼的話,那么這個(gè)方法就派上用場(chǎng)了 ----- 代碼會(huì)忽略大小寫狀態(tài)。
>>>
'
Trondheim Hammer Dance
'
.lower()
'
trondheim hammer dance
'
4、 replace?
replace? 方法返回某字符串的所有匹配項(xiàng)均被替換之后得到字符串。
>>>
'
This is a test
'
.replace(
'
is
'
,
'
eez
'
)
'
Theez eez a test
'
如果,你使用過文字處理工具里的“查找并替換”功能的話,就不會(huì)質(zhì)疑這個(gè)方法的用處了。
?
5、 split
這是一個(gè)非常重要的方法,它是 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? 方法返回去除兩側(cè)(不包含內(nèi)部)空格的字符串:
>>>
'
internal white space is kept
'
.strip()
'
internal white space is kept
'
?
?
字典
?
字典的使用
現(xiàn)實(shí)中的字段及在 python 中的字段都進(jìn)行了構(gòu)建,從而可以輕松查到某個(gè)特定的詞語(鍵),從而找到它的意義(值)。
某些情況下,字典比列表更加適用:
# 表征游戲棋盤的狀態(tài),每個(gè)鍵都是由坐標(biāo)值組成的元組;
# 存儲(chǔ)文件修改次數(shù),用文件名作為鍵;?
# 數(shù)字電話 / 地址本
?
創(chuàng)建一個(gè)人名列表,以及四位的分機(jī)號(hào)碼:
>>> names = [
'
zhangsan
'
,
'
lisi
'
,
'
wangwu
'
,
'
sunliu
'
]
>>> numbers = [
'
2313
'
,
'
9102
'
,
'
3158
'
,
'
4326
'
]
#
通過下下方法查詢
>>> numbers[names.index(
'
zhangsan
'
)]
'
2313
'
?
創(chuàng)建和使用字典
字典可以通過下面方式創(chuàng)建
>>> phonebook = {
'
zhangsai
'
:
'
2313
'
,
'
lisi
'
:
'
9102
'
,
'
wangwu
'
:
'
3158
'
}
字典由多個(gè)鍵及與其對(duì)應(yīng)的值構(gòu)成,在上例中,名字是鍵,電話號(hào)碼是值。
?
dict 函數(shù)
可以用 dict? 函數(shù),通過其他映射(比如其他字典)或(鍵,值)這樣的序列對(duì)建立字典。
>>> items = [(
'
name
'
,
'
gumby
'
),(
'
age
'
,42
)]
>>> d =
dict(items)
>>>
d
{
'
age
'
: 42,
'
name
'
:
'
gumby
'
}
>>> d[
'
name
'
]
'
gumby
'
dict 函數(shù)也可以通過關(guān)鍵字參數(shù)來創(chuàng)建字典,如下例所示:
>>> d = dict(name =
'
gumby
'
, age=42
)
>>>
d
{
'
age
'
: 42,
'
name
'
:
'
gumby
'
}
?
字典示例:
#
簡(jiǎn)單數(shù)據(jù)庫
#
使用人名作為鍵的字典,每個(gè)人用另一個(gè)字典表示,其鍵‘phone’和‘a(chǎn)ddr’分別表示他們的電話號(hào)和地址,
people
=
{
'
zhangsan
'
:{
'
phone
'
:
'
2341
'
,
'
addr
'
:
'
foo drive 23
'
},
'
lisi
'
:{
'
phone
'
:
'
9102
'
,
'
addr
'
:
'
bar street 42
'
},
'
wangwu
'
:{
'
phone
'
:
'
3158
'
,
'
addr
'
:
'
baz avenue 90
'
}
}
#
針對(duì)電話號(hào)碼和地址使用的描述性標(biāo)簽,會(huì)在打印輸出的時(shí)候用到
labels
=
{
'
phone
'
:
'
phone number
'
,
'
addr
'
:
'
address
'
}
name
= raw_input(
'
Name:
'
)
#
查找電話號(hào)碼還是地址? 使用正確的鍵:
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])
------------------------
#
輸入內(nèi)容
>>>
Name:zhangsan
phone number(p)
or
address (a)?p
#
打印結(jié)果
zhangsan
'
s phone number is 2341.
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

