標籤:
1. Python的字典的items(), keys(), values()都返回一個list
>>> dict = { 1 : 2, ‘a‘ : ‘b‘, ‘hello‘ : ‘world‘ } >>> dict.values() [‘b‘, 2, ‘world‘] >>> dict.keys() [‘a‘, 1, ‘hello‘] >>> dict.items() [(‘a‘, ‘b‘), (1, 2), (‘hello‘, ‘world‘)] >>>
2. 在Python中用keys()方法返回字典鍵
In [1]: dicts = {‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:4}In [2]: dictsOut[2]: {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4}In [3]: list1 = dicts.keys()In [4]: list1Out[4]: [‘a‘, ‘c‘, ‘b‘, ‘d‘]In [5]: list2 = dicts.values()In [6]: list2Out[6]: [1, 3, 2, 4]In [7]:
綜上所述:keys()方法返回字典的"鍵"values()方法返回字典的"值"
3. 名稱前的單底線(如:_shahriar)
程式員使用名稱前的單底線,用於指定該名稱屬性為“私人”。這有點類似於慣例,為了使其他人(或你自己)使用這些代碼時將會知道以“_”開頭的名稱只供內部使用。正如Python文檔中所述:
以底線“_”為首碼的名稱(如_spam)應該被視為API中非公開的部分(不管是函數、方法還是資料成員)。此時,應該將它們看作是一種實現細節,在修改它們時無需對外部通知。
正如上面所說,這確實類似一種慣例,因為它對解譯器來說確實有一定的意義,如果你寫了代碼“from <模組/包名> import *”,那麼以“_”開頭的名稱都不會被匯入,除非模組或包中的“__all__”列表顯式地包含了它們.
4. 名稱前的雙底線(如:__shahriar)
名稱(具體為一個方法名)前雙底線(__)的用法並不是一種慣例,對解譯器來說它有特定的意義。Python中的這種用法是為了避免與子類定義的名稱衝突。Python文檔指出,“__spam”這種形式(至少兩個前置底線,最多一個後續底線)的任何標識符將會被“_classname__spam”這種形式原文取代,在這裡“classname”是去掉前置底線的當前類名。例如下面的例子:
>>> class A(object):... def _internal_use(self):... pass... def __method_name(self):... pass...>>> dir(A())[‘_A__method_name‘, ..., ‘_internal_use‘]
5. python find()用法
1.
str = "01213456"if str.find("23"): print "YES!"else: print "NO!"
2. str = "01213456"if str.find("23"): print "YES!"else: print "NO!"
上兩個案例結果都為“YES!”, 非常令我吃驚,2不應該是NO!嗎?
這裡注意兩點:
1. if str.find(‘23‘): 此時預設為 str.find(‘23‘) != 0:
2. find()函數找不到時返回為-1。
經查閱得知其用法:
函數原型:find(str, pos_start, pos_end)
解釋:
- str:被尋找“字串”
- pos_start:尋找的首字母位置(從0開始計數。預設:0)
- pos_end: 尋找的末尾位置(預設-1)
傳回值:如果查到:返回尋找的第一個出現的位置。否則,返回-1。
1.str = "0123" print str.find("2",1,-1) #2 2.str = "1111" print str.find("1") #0,首次出現的位置
6. python的decode()方法:
decode()方法使用註冊編碼的轉碼器的字串進行解碼。它預設為預設的字串編碼。
文法
以下是decode()方法的文法:
str.decode(encoding=‘UTF-8‘,errors=‘strict‘)
參數
encoding -- 這是所使用的編碼。對於所有的編碼方案的列表,請訪問:標準編碼庫
errors -- 這可能是給定一個不同的錯誤處理機制。預設的錯誤是“嚴格”,即編碼錯誤提出UnicodeError。其他可能的值是ignore‘, ‘replace‘, ‘xmlcharrefreplace‘, ‘backslashreplace‘ 並通過codecs.register_error().註冊的任何其他名稱。
傳回值
此方法返回的字串的解碼版本。
例子
下面的例子顯示了decode()方法的使用。
#!/usr/bin/pythonstr = "this is string example....wow!!!";str = str.encode(‘base64‘,‘strict‘);print "Encoded String: " + str;print "Decoded String: " + str.decode(‘base64‘,‘strict‘)
當我們運行上面的程式,它會產生以下結果:Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=Decoded String: this is string example....wow!!!
python的方法總結: