列表生成式,是
python
內建的一種極其強大的生成list的表示式。
如果要生成乙個列表,可以用range(1,10)
>>>range(1,4)
>>>[1,2,3]
生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎麼做呢?可以使用迴圈:
>>> l=
>>> for
x in
range(1,
10):
...
>>> l
[1, 4,
9, 16,
25,
36,
49,
64,
81]
列表生成式代替以上繁瑣迴圈
>>>
[x*x
forx
inrange(1,
11)]
[1, 4,
9, 16,
25,
36,
49,
64,
81,
100]
>>>
列表生成式的格式
【x*x for x in range(1,11)】
第一:把要生成的元素x*x放在前面
第二:後面跟上for迴圈
第三:也可加上if條件 如篩選出偶數的平方x%2==0
befor=[1000,2000,3000,4000]
after=
for one in befor:
if(one>2000):
以上可寫成
after=[one*0.9 for one in befor if one>2000]
range(4)
>>>4,3,2,1
range(1,4)
>>>1,2,3
range(4,1,-1) 這裡的-1表示從4-1
>>>4,3,2
氣泡排序
def mysort(alist):
for i in range(len(alist)-1,0,-1): # i 是最後乙個元素到第二個元素,兩兩相比較大的往後移;len(alist)表示列表最後一位
for j in range(0,i): #第一輪的比較是所有元素,第二輪是n-1個元素
if alist[j]>alist[j+1]:
alist[j],alist[j+1]=alist[j+1],alist[j] #如果大於就交換一下位置
return alist
print mysort([3,2,4,66,11])
beforb
列表生成式
列表生成式 1生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用 range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是迴圈 l for x in range 1,11 l ...
列表生成式
列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成list 1,2,3,4,5,6,7,8,9,10 可以用list range 1,11 list range 1,11 1,2,3,4,5,6,7,8,9,10 但...
列表生成式
coding utf 8 列表生成式是快速生成乙個list列表的一種快捷方式。my list for x in xrange 1,11 res x x print my list 生成式寫法 x x for迴圈遍歷出來的值進行的邏輯運算 for x in xrange for迴圈表示式 res x ...