python之生成式

本文介绍了Python中的生成式,包括集合生成式、列表生成式和字典生成式。通过练习1到4,读者可以掌握如何生成特定序列,如平方数列表、偶数列表、质数列表,并使用字典生成式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.集合生成式

print({i**2 for i in {7,5,3,4}})
print({i ** 2 for i in {1,2,2,3,4,4}})

在这里插入图片描述

2.列表生成式

练习1:生成一个列表,列表元素分别为[12,22,…,n**2]
print([i ** 2 for i in range(1,9)])

在这里插入图片描述

练习2.找出1~10以内的所有偶数,并返回一个列表(包含以这个偶数为半径的圆的面积)
import math
a=math.pi
print( [a * i*i for i in range(1,11) if i % 2 == 0])

在这里插入图片描述

练习3:找出1~100之间所有的质数
def zhishu(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 zhishu(i)])

在这里插入图片描述

练习4:
题目描述:
    给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果,输入值小于1000

num = int(input())
# 判断质数:
def zhishu(num):    
    for i in range(2,num):        
        if num % i == 0:           
            return False    
        else:        
            return True
zhishuli = [ i for i in range(2,num) if zhishu(i)]
# 判断质数的和
count = 0
for j in zhishuli:    
if (num- j) in zhishuli and j <= (num - j):        
    count +=1
print(count)

在这里插入图片描述

3.字典生成式

get # 获取键值对应的value值

d1= dict(a=1,b=2)
print(d1)
# 1.转换为大写,并用字典输出
new_d = {}for i in d1:    
    new_d[i.upper()] = d1[i]
print(new_d)
# 2.转换为大写,并用字典生成式来输出
print({ k.upper():v for k,v in d1.items() }) 
d2= dict(a=2,b=1,c=2,B=9,A=10)
# 输出{'a':12,'b':10,'c':2} 

# 这是第一种方法
new_d2 = {}
for k2,v2 in d2.items():    
    low_k = k2.lower()    
    if low_k not in new_d2:        
        new_d2[low_k] = v2    
    else:        
        new_d2[low_k] += v2
print(new_d2)
        
# 这是第二种方法 
print({k2.lower(): d2.get(k2.lower(),0) + d2.get(k2.upper(),0) for k2 in d2})

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值