1. 程式人生 > >python基礎教程(五)

python基礎教程(五)

() 文件名 nal cnblogs 文件 求長 元素 fin 查詢

字符串基本操作

  所有標準的序列操作(索引、分片、乘法、判斷成員資格、求長度、取最小值和最大值)對字符串同樣適用,前面已經講述的這些操作。但是,請註意字符串都是不可變的。

字符串的方法:

字符串從string 模塊中“繼承”了很多方法,這裏只介紹一些特別有用的。

1find

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 = phoneif 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 #打印結果 zhangsans phone number is 2341.
技術分享

python基礎教程(五)