python中列表生成式

1.列表生成式
Python內置的一種極其強大的生成列表 list 的表達式。返回結果必須是列表。

格式:[ 變量表達式 for 變量 in 表達式 if 變量的判斷條件(結果爲True 或者False)]

#需求1:接收變量 k a b
常規寫法:
s = '51 5000 10000'
a = s.split()
print(a)
li = []
for item in s.split():
li.append(int(item))
print(li)
k,a,b = li
print(k,a,b)
列表生成式:
li = [int(item) for item in s.split()]
print(li)
k, a, b = li
print(k, a, b)

python中列表生成式

需求2:生成一個列表,列表的元素分別爲[11 22 9**9 ]

li = []
for i in range(1, 10):
li.append(i ** i)
print(li)

print([i ** i for i in range(1, 10)])

python中列表生成式

找出1~10之間的所有偶數
print([i for i in range(1,11) if i %2 == 0])
#s1 = 'ABC' s2='123' A1 A2 A3...C1 C2 C3
print([i + j for i in 'ABC' for j in '123'])

2.列表生成式變形之for循環

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:
resli.append(item2)
print(resli)

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

from itertools import chain
print(list(chain(*li)))

python中列表生成式

#1.找出1~10之間的所有偶數,並且返回一個列表(包含以這個偶數爲半徑的園的面積)
方法1:
import math
li = []
for r in range(2, 11, 2):
square = math.pi r r
li.append(square)
print(li)
方法2 :
print([math.pi r r for r in range(2, 11, 2)])
方法3:
def square(r):
"""
求以r爲半徑的圓
:param r:半徑
:return:
"""
res = math.pi r r
return res
print([square(i) for i in range(2,11,2)])

python中列表生成式

#找出1~100之間的所有素數 (列表生成式 + 函數)
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)])
python中列表生成式

  • 題目描述:
    給定一個正整數,編寫程序計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸
    入值小於1000。
    如,輸入爲10, 程序應該輸出結果爲2。(共有兩對質數的和爲10,分別爲(5,5),(3,7))
    #[2,3,5,7]
  • 輸入描述:
    輸入包括一個整數n,(3 ≤ n < 1000)
  • 輸出描述:
    輸出對數
  • 示例1 :
    輸入:
    10
    輸出:
    2

#定義函數判斷是不是質數
def isprime(x):
for i in range(2,x):
if x%i==0 :
return False
else:
return True
#將比給定的正整數小的所有質數存在列表中
N = int(input('N:'))
small_prime = [ num for num in range(2,N) if isprime(num)]
#將可以相加等於該正整數的質數挑選出來
result = [ prime for prime in small_prime if N - prime in small_prime and prime <=N/2]
#輸出得到的指定素數列表的長度 就是統計出的素數對的數量
print(len(result))

python中列表生成式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章