列表生成式

2021-09-02 09:52:20 字數 3628 閱讀 9185

s = '51 5000 10000'

li =

for item in s.split():

k,a,b = li

print(k,a,b)

li=[int(item) for item in s.split()]

print(li)

print(k,a,b)

li = 

for i in range(1,8):

print(li)

li = [i**i for i in range(1,8)]

print(li)

[experssion for item in 序列 if 判斷語句]
舉例:找出1-8中的偶數再平方

li = [i ** 2 for i in range(1, 8) if i % 2 == 0]

print(li)

找出1~10之間的所有的偶數

print([i for i in range(1, 11) if i % 2 == 0])
找出1~1000之間的所有質數

def isprime(num):

pass

print([i for i in range(1, 1000) if isprime(i)])

s1='abc' s2='123'(for巢狀迴圈)

s1 = 『abc』

s2 = 『123』

將兩個合併,輸出為 『a1』, 『a2』, 『a3』, 『b1』, 『b2』, 『b3』, 『c1』, 『c2』, 'c3』

print([i + j for i in 'abc' for j in '123'])
注意:列表生成式中前後都可寫成函式形式。例:方法一:

[i**2 for i in range(2,10,2)]
方法二:

def fun(i):

a = i ** 2

[fun(i) for i in range(2,10,2)]

需求:講3x3的矩陣轉換成一堆陣列

[[1,2,3],

[4,5,6],

[7,8,9]

][1,2,3,4,5,6,7,8,9]

方法一:

li = [

[1, 2, 3],

[4, 5, 6],

[7, 8, 9]

]resli =

for item1 in li: # [1,2,3] [4,5,6] [7,8,9]

for item2 in item1:

if item2 % 2 == 0:

print(resli)

方法二:

print([item2 for item1 in li for item2 in item1])

from itertools import chain

print(list(chain(*li)))

li = ['dasdafsdfsfdsf','daddsadsasdadassadas']

print([i.lower() for i in li])

import os

#print(os.listdir('/var/log'))

print([filename for filename in os.listdir('/var/log') if filename.endswith('.log')])

import math
方法一:

li = 

for r in range(2, 11, 2):

square = math.pi * r * r

print(li)

方法二:

print([math.pi * r * r for r in range(2, 11, 2)])
方法三:

def square(r):

"""求以r為半徑的圓"""

res = math.pi *r*r

return res

print([square(r) for r in range(2,11,2)])

思路:

判斷num是否為質數,如果是質數,返回true,否則返回false

什麼是質數?

只能被1和本身整除的數,就是質數

方法:依次判斷num能被(2,num)整除

如果能被其中其中乙個數整除,不是質數

當迴圈結束,都沒有發現能被整除的數,那麼就是質數

def isprime(num):

for i in range(2,num):

if num % i == 0:

return false

else:

return true

print([i for i in range(2,101) if isprime(i)])

def isprime(num):

for i in range(2,num):

if num % i == 0:

return false

else:

return true

a = int(input('請輸入乙個正整數num,且3<=num<=1000:'))

列表生成式

列表生成式 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 但...

列表生成式

列表生成式,是 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...