除了常見的列表建立方法外,還有一下幾種建立方式:
'''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 ...