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.
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
