理解pythonic概念

2021-06-29 03:27:04 字數 1227 閱讀 5306

pythonic可以定義為:充分體現python自身特色的**風格。

在語法上,舉個常見的例子,在其他語言(如c)中,兩個變數的交換:

int a = 1, b = 2;

int tmp = a; a = b; b = tmp;

利用python的packaging/unpackaging機制,pythonic的**就需一行:

a, b = b, a

另外,遍歷乙個容器時,類似其他程式語言的**如下:

length = len(alist)

i = 0

while i < length

do_sth_with(alist[i])

i+=1

而pythonic的**如下

for i in alist

do_sth_with(i)

故pythonic的乙個藥酒就是對python語法本身的充分發揮,寫出來的**帶著python味兒。

編寫python**時,應該充分利用python的語法,但不應過分的使用奇技淫巧,比如利用python的slice語法,可以寫出如下**

a = [1,2,3,4]

b = 'asdfghjkl'

print a[::-1]

print b[::-1]

對於這樣一段**恐怕不是一眼就可以看出其作用,實際上更好的體現pythonic的**是充分利用python庫里的reversed()函式:

print list(reversed(a))

print list(reversed(b))

寫pythonic的**需要對標準庫有充分的理解,特別是內建函式和內建資料型別。

比如對字串初始化:print 'hello %s!' % ('tom', )

%s是非常影響可讀性的,因為數量多了以後,很難清除哪乙個佔位符對應哪乙個實參

對應的pythonic的**應該是這樣的

print 'hello %(name)s!' %

針對value =

print ='%(greet)s from %(language)s.' % value

更pythonic的**如下:

print 『 from .' .format(greet = 'hello world', language: 'python')

str.format()方法非常清晰地表明了語句的意圖,事實上,str.format()也成為python最為推薦的字串格式化方法。

pythonic的學習筆記

隨著時間的推移,python語言不斷演進,社群不斷成長,湧現了許多關於如何正確地使用 python 的 ideas。一方面 python 語言推薦使用大量的慣用法來完成任務 完成任務的唯一方法 另一方面,社群不斷演變的新的慣用法的又反過來影響了語言的進化,以更好地支援慣用法。比如新進入的字典的 ge...

Pythonic版二分查詢實現過程原理解析

更多程式設計教程請到 菜鳥教程 前提 公升序陣列,待查元素在陣列中。二分查詢 就是乙個遞迴函式c。待查元素a,當前陣列中位數b,如果b a則返回b的索引,b a則在b左側的子陣列中呼叫函式c,否則在b右側子陣列中呼叫函式c。第一次思考,按著上面的思路程式設計後的結果 def binary searc...

python推導式pythonic必備

推導式 又稱解析式 是python的 種獨有特性。推導式是可以從 個資料序列構建另 個新的資料序列的結構體。共有三種推導 列表推導式 list comprehensions 列表推導式 又稱列表解析式 提供了 種簡明扼要的方法來建立列表。它的結構是在乙個中括號裡包含乙個表示式,然後是乙個for語句,...