初識Python語言,覺得python滿足了我上學時候對程式設計語言的所有要求。python語言的高效程式設計技巧讓我們這些大學曾經苦逼學了四年c或者c++的人,興奮的不行不行的,終于解脫了。進階語言,如果做不到這樣,還扯啥進階呢?
01 交換變量>>>a=3
>>>b=6
這個情況如果要交換變量在c++中,肯定需要一個空變量。但是python不需要,隻需一行,大家看清楚了>>>a,b=b,a
>>>print(a)>>>6
>>>ptint(b)>>>5
02 字典推導(Dictionary comprehensions)和集合推導(Set comprehensions)
大多數的Python程式員都知道且使用過清單推導(list comprehensions)。如果你對list comprehensions概念不是很熟悉——一個list comprehension就是一個更簡短、簡潔的建立一個list的方法。
自從python 3.1 起,我們可以用同樣的文法來建立集合和字典表:
在第一個例子裡,我們以some_list為基礎,建立了一個具有不重複元素的集合,而且集合裡隻包含偶數。而在字典表的例子裡,我們建立了一個key是不重複的1到10之間的整數,value是布爾型,用來訓示key是否是偶數。
這裡另外一個值得注意的事情是集合的字面量表示法。我們可以簡單的用這種方法建立一個集合:
而不需要使用内置函數set()。
03 計數時使用Counter計數對象
這聽起來顯而易見,但經常被人忘記。對于大多數程式員來說,數一個東西是一項很常見的任務,而且在大多數情況下并不是很有挑戰性的事情——這裡有幾種方法能更簡單的完成這種任務。
Python的collections類庫裡有個内置的dict類的子類,是專門來幹這種事情的:
04 漂亮的列印出JSON
JSON是一種非常好的資料序列化的形式,被如今的各種API和web service大量的使用。使用python内置的json處理,可以使JSON串具有一定的可讀性,但當遇到大型資料時,它表現成一個很長的、連續的一行時,人的肉眼就很難觀看了。
為了能讓JSON資料表現的更友好,我們可以使用indent參數來輸出漂亮的JSON。當在控制台互動式程式設計或做日志時,這尤其有用:
同樣,使用内置的pprint子產品,也可以讓其它任何東西列印輸出的更漂亮。
05 解決FizzBuzz
前段時間Jeff Atwood 推廣了一個簡單的程式設計練習叫FizzBuzz,問題引用如下:
寫一個程式,列印數字1到100,3的倍數列印“Fizz”來替換這個數,5的倍數列印“Buzz”,對于既是3的倍數又是5的倍數的數字列印“FizzBuzz”。
這裡就是一個簡短的,有意思的方法解決這個問題:for x in range(1,101):
print"fizz"[x%3*len( fizz )::]+"buzz"[x%5*len( buzz )::] or x
06 if 語句在行内print "Hello" if True else "World"
>>> Hello
07 連接配接
下面的最後一種方式在綁定兩個不同類型的對象時顯得很cool。
08 數值比較
這是我見過諸多語言中很少有的如此棒的簡便法。
09 同時疊代兩個清單
10 帶索引的清單疊代