前言
指在通過一個表達式完成一系列操作
生成式示例
- [expression for i in seq if…]
打印1-10之間偶數的平方
print([i ** 2 for i in range(1,11) if i %2 == 0])
練習(騰訊質數對)
(2018-騰訊-在線編程題)
-
題目描述:
給定一個正整數,編寫程序計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。
如,輸入爲10, 程序應該輸出結果爲2。(共有兩對質數的和爲10,分別爲(5,5),(3,7))
#[2,3,5,7] -
輸入描述:輸入包括一個整數n,(3 ≤ n < 1000)
-
輸出描述:輸出對數
-
示例1 :
輸入:10
輸出:2num = int(input()) def isPrime(num): for i in range(2,num): if num % i == 0: return False else: return True primeli = [i for i in range(2,num) if isPrime(i)] print(primeli) primecount = 0 #[2,3,5,7] for item in primeli: if (num - item) in primeli and item <= num - item: primecount += 1 print(primecount)
練習(20個學生求90分以上人數)
需求1:假設有20個學生,學生名爲westosX,學生分數在60~100之間,篩選出
成績在90分以上得學生
import random
stuInfo = {}
for i in range(20):
name = 'westos' + str(i)
score = random.randint(60,100)
stuInfo[name] = score
print(stuInfo)
print({name: score for name,score in stuInfo.items() if score > 90})
2.key --> upper
d = dict(a=1,b=2)
print(d)
new_d = {}
for i in d:
new_d[i.upper()] = d[i]
print(new_d)
生成式:
print({k.upper():v for k,v in d.items()})
需求3:大小寫key值合併,統一以小寫輸出
d = dict(a=2, b=1, c=2, B=9, A=10)
輸出{'a': 12, 'b': 10, 'c': 2}
new_d = {}
for k,v in d.items():
low_k = k.lower()
if low_k not in new_d:
new_d[low_k] = v
else:
new_d[low_k] += v
print(new_d)
生成式:
print({k.lower(): d.get(k.lower(), 0) + d.get(k.upper(), 0) for k in d})