Python高階(一) python技巧

2021-08-07 20:09:42 字數 3466 閱讀 8827

除了常見的列表建立方法外,還有一下幾種建立方式:

'''split()函式用來分割文字,可以給定分割符號,如上以 , 為分割符'''

suits = 'spade,heart,club,diamond'.split(',')

'''用for..in ..語句塊可以使得列表的建立更加簡潔,尤其是需要新增大量元素。

list(seq)函式用來建立,不過只能傳入乙個引數.'''

ranks = [str(x) for x in range(2,11)] + list('jqka')

'''笛卡爾積的應用,下面建立card列表運用了笛卡爾積,好處就是我們在建立乙個

二元列表時不需要像其他語言一樣需要兩個for語句來巢狀,這樣更加簡潔。而且

python對笛卡爾積進行了優化,效率比兩個for迴圈巢狀更快。'''

card = [(suit,rank) for suit in suits for rank in ranks[:2]]

上面建立的各列表結果如下:

另外還有運用*來建立列表的:

#可以在下面結果圖中看到這些操作會產生什麼結果

'''*號在不同的位置會產生不同的效果'''

test = ['_']*3

test1 = [['_']*3]

'''不推薦以下方法來建立,效果如圖所示,這樣做的後果就是在第一維中,每個元素

都是指向同一位址,改變其中乙個也就改變了其他元素了'''

test2 = [['_']*3]*3

test2[1][2] = 'o'

'''推薦使用這種方法來建立'''

test3 = [['_']*3

for i in range(3)]

test3[1][2] = 'o'

'''不推薦這種方法建立,原因同test2

test4 =

test5 = ['_']*3

for i in range(3):

test4[1][2] = 'o'

效果圖:

2017.10.29補充

我們用列表生成乙個二維陣列:

list1 = [[range(5)] for i in

range(5)]

結果

[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
拆包可以運用到列表,元組中,實現快速拆分其元素的效果

'''*號表示將拆分後多餘元素的放在乙個列表裡面'''

l = [10,11,12]

a,b,c = l

c , *d = l

*e , f = l

print(a,b,c)

print(c,d)

print(e,f)

'''l如果是乙個列表或者元組時,*l表示將每個元素都拆包出來'''

print(*l)

效果圖:

為了更好的理解,我們看下面例子:

suits = 'spade,heart,club,diamond'.split(',')

ranks = [str(x) for x in range(2,11)] + list('jqka')

card = [(suit,rank) for suit in suits for rank in ranks[:1]]

print(card)

for tmp in card:

print(*tmp)

'''#效果和上面一樣

for tmp in card:

print('%s %s'%tmp)'''

效果圖:

這裡另外介紹python乙個很方便的操作,就是兩個變數在進行值交換時不用建立乙個中間值變數:

a = 10

b = 20

a , b = b , a

效果圖我就不貼上來了

有時我們需要列舉乙個列表,元組中的元素時候,可以寫成這樣:

list1 = [10, 654, 56, 96]

for i, item

in enumerate(list1):

print(i, item)

1.簡化if-else

在python中如果使用了if-else語句我們本來是這樣寫的:

x, y = 100, 95

if x < y:

result = x

else:

result = y

我們可以簡寫為:

x, y = 100, 95

result = x if x > y else y

2.當判斷條件多的時候,視情況運用列表:

例如:

if x in [10, 20, 30]:

print("hello")

還可以這樣子用:

python進一 Python高階一

python 資料型別 最近,我在看 流暢的python 這本書。本書比較適合python的高階過程閱讀。現在來總結一下本書第一章的內容。書的第一章主要介紹了python 的資料型別,幫助你更好的理解為什麼python這樣設計,以及這樣設計的優點。開篇作者就講出了python語言的乙個良好品質 一致...

Python高階之路 一

一 python基礎語法知識 第一天 1 變數 定義 為了儲存 程式運算過程中的一些中間 結果,為了方便日後呼叫,資料修改 命名規則 1 由字母 數字 下劃線組成 2 不能以數字開頭,不能含有特殊的字元和空格 3 不能以保留字命名 4 不建議以中文命名 5 定義的變數名應該有意義 見名知意 6 駝峰...

Python高階技巧(一)

命名統計 collections 提取公共鍵 map reduce 佇列pickle filter lambda x x 0 list x for x in data if x 0 from random import randint data randint 10,10 for in range ...