1. 在python里為了方便生成list整數列表,認識了一個新的函數range()。
range有三個參數range(start, stop,step):
參數解釋:
start:list列表開始的值,默認從0開始。
stop:list列表計數到stop結束,但是不包括stop。
step:步長,默認為1。也就是列表后一個值和前一個值的間隔值。
比如:range(1, 10, 2)生成的列表為[1, 3, 5, 7, 9]。
range(10)生成的列表為[0,1,2,3,4,5,6,7,8,9]。
range(0,-5,-1)生成列表為[0, -1, -2, -3, -4]
range(0) 生成空列表[ ]
range()應用舉例
for應用:輕松創建需要的列表,節省代碼數量
[ x * x for x in range(1, 11) ]
生成[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2. 除了range()可以快速生成列表之外,還可以應用列表表達式,
格式為:[列表表達式]
比如:
已有列表L = [1, 2, -1, -3, 8, 4, -6, 7],篩選列表中大於0的元素 。
1.按照正常思維需要for循環,挨個判斷元素是否大於0,然后添加到新的列表中:
d = []
for x in L:
if x > 0:
d.append(x)
print d
結果為[1, 2, 8, 4, 7]
2. 應用列表表達式:
d = [x for x in L if x > 0]
print d
結果為[1, 2, 8, 4, 7]
列表表達式,代碼更為簡潔,應用更為方便,理解起來也不難,勤加練習,數量掌握之后,會大大提高自己的代碼效率。
拓展:列表表達式,可以實行多層嵌套。
比如:
[x*10 + y for x in '15482' for y in '23532' if x > y ]
生成十位數比個位數大的兩位數。