1.集合生成式
print({i ** 2 for i in {1,2,3,3}})
print({i ** 2 for i in {1,2,3,9,12,9} if i % 3 == 0 })
运行结果:
{1, 4, 9}
{81, 9, 144}
2.列表生成式
1.生成一个列表,列表元素分别为[1**2,2**2,3**2,...n**2]print([i**2 for i in range(1,9)])
2.找出1-10之间的所有偶数并返回一个列表(包含一这个偶数为半径的圆的面积)
import math
a=math.pi
print([i**2*a for i in range(1,11) if i%2==0])
3.找出1~100中的所有质数
def fun(n):
for j in range(2,n):
if n %j==0:
return False
else:
return True
print([i for i in range(2,101) if fun(i)])
4.(2018-腾讯-在线编程题)
- 题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整
数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别
为(5,5),(3,7))
[2,3,5,7] - 输入描述:
输入包括一个整数n,(3 ≤ n < 1000) - 输出描述:
输出对数 - 示例1 :
输入:
10
输出:
2
def fun(n):
for i in range(2, n):
if n % i == 0:
return False
else:
return True
s = [i for i in range(2, 101) if fun(i)]
count=0
num = int(input())
for i in s:
if (num - i) in s and i <= (num -i): #为取消3,7和7,3重复
print(i,num-i)
count+=1
print(count)
3.字典生成式
1.变化key值
dict={'a':1,'b':2}
#通过生成式改变key
print({k.upper():v for k,v in dict.items()})
2.d = dict(a=2,b=1,c=2,B=9,A=10)
输出{‘a’:12,‘b’:10,‘c’:2}
d = dict(a=2,b=1,c=2,B=9,A=10)
print({k.lower(): d.get(k.lower(),0)+d.get(k.upper(),0) for k in d})