前言
指在通过一个表达式完成一系列操作
生成式示例
- [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})