python的方法總結:

來源:互聯網
上載者:User

標籤:

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的方法總結:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.