程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 收藏整理的一些Python常用方法和技巧

收藏整理的一些Python常用方法和技巧

編輯:更多關於編程

       這篇文章主要介紹了收藏的一些Python常用方法和技巧,本文講解了逆轉字符串的三種方法、遍歷字典的四種方法、遍歷list的三種方法、字典排序的方法等Python常用技巧和方法,需要的朋友可以參考下

      1. 逆轉字符串的三種方法

      1.1. 模擬C++中方法, 定義一個空字符串來實現

      通過設置一個空字符串, 然後講參數中的字符串從後往前遍歷, 使用字符串的加法合並為新的字符串

       代碼如下:

      def reverse(text) :

      str = ''

      index = len(text) - 1

      while index >= 0 :

      str += text[index]

      index -= 1

      return str

      1.2. 使用切片法

      這個是Python中的一個特性, 切片可以取負值,這是采用切片的方法,設置步長為-1,這樣就實現了反過來排序。

       代碼如下:

      def reverse_1(text) :

      return text[::-1]

      1.3. 使用列表

      采用列表的reverse方法,先將text轉換為列表,然後通過reverse方法反轉,然後在通過join連接為字符串。

       代碼如下:

      def reverse_2(text) :

      temp = list(text)

      temp.reverse()

      return ''.join(temp)

      2. 使用reduce

      使用匿名函數和reduce()

       代碼如下:

      def reverse_3(text) :

      return reduce(lambda x, y : y + x, text)

      print reverse_3("Hello")

      3. 遍歷字典的四種方法

      代碼如下:

      dict={"a":"apple","b":"banana","o":"orange"}

      print "##########dict######################"

      for i in dict:

      print "dict[%s]=" % i,dict[i]

      print "###########items#####################"

      for (k,v) in dict.items():

      print "dict[%s]=" % k,v

      print "###########iteritems#################"

      for k,v in dict.iteritems():

      print "dict[%s]=" % k,v

      print "###########iterkeys,itervalues#######"

      for k,v in zip(dict.iterkeys(),dict.itervalues()):

      print "dict[%s]=" % k,v

      4. 遍歷list的三種方法

       代碼如下:

      for key in lst :

      print key

      for i in range(len(lst)) :

      print lst[i]

      for index, key in enumerate(lst) :

      print key //index是list的索引

      5. 字典排序的方法

      字典按照value的值從大到小的順序來排序(默認從小到排序)。

       代碼如下:

      dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}

      dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)

      print dict

      //輸出的結果:

      [('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]

      下面我們分解下代碼

      print dic.iteritems() 得到[(鍵,值)]的列表。

      然後用sorted方法,通過key這個參數,指定排序是按照value,也就是第一個元素d[1的值來排序。reverse = True表示是需要翻轉的,默認是從小到大,翻轉的話,那就是從大到小。

      對字典按鍵(key)排序:

       代碼如下:

      dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}

      dict= sorted(dic.iteritems(), key=lambda d:d[0]) # d[0]表示字典的鍵

      print dict

      #sorted中第三個可選參數為reverse, True表示從大到小排序

      #默認reverse = False

      6. 子類和父類

      子類構造函數調用父類的初始化構造函數

      代碼如下:

      class A(object) :

      def __init__(self) :

      print "testA

      class B(A) :

      def __init__(self) :

      A.__init__(self)

      子類調用父類的同名函數

       代碼如下:

      super().fuleifunction()

      7. 更靈活的參數傳遞方式

       代碼如下:

      func2(a=1, b=2, c=3) #默認參數

      func3(*args) #接受任意數量的參數, 以tuple的方式傳入

      func4(**kargs) #把參數以鍵值對字典的形式傳入

      在變量前加上星號前綴(*),調用時的參數會存儲在一個 tuple()對象中,賦值給形參。在函數內部,需要對參數進行處理時,只要對這個 tuple 類型的形參(這裡是 args)進行操作就可以了。因此,函數在定義時並不需要指明參數個數,就可以處理任意參數個數的情況。

       代碼如下:

      def calcSum(*args):

      sum = 0

      for i in args:

      sum += i

      print sum

      #調用:

      calcSum(1,2,3)

      calcSum(123,456)

      calcSum()

      #輸出:

      6

      579

      0

      #################################

      def printAll(**kargs):

      for k in kargs:

      print k, ':', kargs[k]

      printAll(a=1, b=2, c=3)

      printAll(x=4, y=5)

      #輸出:

      a : 1

      c : 3

      b : 2

      y : 5

      x : 4

      python的中參數可以多種形式進行組合, 在混合使用時,首先要注意函數的寫法,必須遵守:

      1.帶有默認值的形參(arg=)須在無默認值的形參(arg)之後

      2.元組參數(*args)須在帶有默認值的形參(arg=)之後

      3.字典參數(**kargs)須在元組參數(*args)之後

      在函數被調用時,參數的傳遞過程為:

      1.按順序把無指定參數的實參賦值給形參

      2.把指定參數名稱(arg=v)的實參賦值給對應的形參

      3.將多余的無指定參數的實參打包成一個 tuple 傳遞給元組參數(*args)

      4.將多余的指定參數名的實參打包成一個 dict 傳遞給字典參數(**kargs)

      8. lambda 表達式

      lambda 表達式可以看做一種匿名函數

      lambda 表達式的語法格式:

      lambda 參數列表: 表達式 #參數列表周圍沒有括號,返回值前沒有 return 關鍵字,也沒有函數名稱

      復制代碼 代碼如下:

      def fn(x):

      return lambda y: x + y

      #調用

      a = fn(2)

      print a(3)

      #輸出

      5

      分析

      : fn(2)調用後, 相當於a = lambda y: 2 + y, 然後a(3)被調用時.

      相當於 print lambda y: 2 + 3

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved