列表生成式

2021-08-02 23:32:33 字數 1355 閱讀 3721

列表生成式,是

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]  

列表生成式代替以上繁瑣迴圈

>>> 

print

[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 ...