1.集合的生成式
一般格式:
(1).將集合中的每乙個元素分別平方
# 此時輸出的是乙個物件
print(i ** 2 for i in )
# {}:轉換為集合,集合會自動去重
(2).將集合中是3的倍數的所有元素分別平方
2.列表的生成式
一般格式:
[表示式 for i in 列表序列 if ...]
(1).找出1-10之間的所有偶數, 並返回乙個以這個偶數為半徑的圓面積的列表
# 匯入math模組,用於輸入pi
import math
# format: 格式轉換,將pi保留兩位小數
print(float(format(math.pi,'.2f')))
# 列表生成式
# 方法1:
print([float(format(math.pi,'.2f')) * i ** 2 for i in range(1,11) if i % 2 == 0])
# 方法2:
(2).找出1-100之間的質數(只能被自己和1整除的數)
注意: 1不是質數
# 1)普通方法:
# for i in range(2,101):
# for j in range(2, i):
# if i % j == 0:
# break
# else:
# print(i)
# 2)列表生成式:
# 定義函式,判斷是否為質數
def isprime(i):
for j in range(2,i):
if i % j == 0:
return false
else:
return true
# 列表生成式
示例1:
題目描述:
給定乙個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,
並輸出結果.輸入值小於1000.如:輸入為10, 程式應該輸出結果為2
(共有兩對質數的和為10,分別為(5,5),(3,7)) # [2,3,5,7]
輸入描述:
輸入包括乙個整數n,(3 ≤ n < 1000)
輸出描述:
輸出對數
示例1:
輸入:10
輸出:2
**:(方法1)
# 1.接收使用者輸入
n = int(input())
# 2.判斷是否為質數
def primefun(i):
for j in range(2,i):
if i % j == 0:
return false
else:
return true
# 3.找到n以內的所有質數並儲存在列表中
primeli = [i for i in range(2,n) if primefun(i)]
# 4.統計滿足條件的個數
# 定義計數器
count = 0
# 遍歷n以內的所有質數;兩個for迴圈便可以得到兩個數
for i in primeli:
for j in primeli:
# 注意:如果不定義i與j的大小,10=3+7=7+3便會記為兩次
if i+j == n and i<=j:
# print(i,j)
# print('%s = %s + %s' % (n,i,j))
count += 1
# 輸出個數
print(count)
執行結果:
**:(方法2)
# 1.接收使用者輸入
n = int(input())
# 2.判斷是否為質數
def primefun(i):
for j in range(2,i):
if i % j == 0:
return false
else:
return true
# 3.找到n以內的所有質數並儲存在列表中
primeli = [i for i in range(2,n) if primefun(i)]
# 4.統計滿足條件的個數
# 先確定第乙個數a,再判斷n-a=b是否在列表中,即可判斷n=a+b
# [2,3,5,7] # 2 10-2=8
primecount = 0
# 遍歷n以內的所有質數
for item in primeli:
if (n - item) in primeli and item <= n - item:
primecount +=1
# 輸出個數
print(primecount)
執行結果:
3.字典的生成式
一般格式:
(1).將字典: ---->
一般方法:
# 工廠函式的方式,定義字典
d = dict(a=1,b=2)
print(d)
# 定義空字典,用來接收轉換key值後的值
new_d = {}
# 遍歷舊字典的key值
for i in d:
# d[i]:字典的key對應的value值
# print(d[i])
new_d[i.upper()] = d[i]
print('key轉化為大寫的字典:',new_d)
# 工廠函式的方式,定義字典
d = dict(a=1,b=2)
print(d)
# 字典生成式
(2).將字典: —>
一般方法:
# 工廠函式的方式,定義字典
d = dict(a=2,b=1,c=2,b=9,a=10)
print(d)
# 定義空字典
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)
d = dict(a=2,b=1,c=2,b=9,a=10)
print(d)
# key:val, get方法:獲取指定key對應的value值
Python之字典生成式
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 ...
python 列表生成式,字典生成式
生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...
Python 列表生成式 字典生成式
通過生成式可以更加簡潔地生成列表和字典 列表生成式 對比 直接生成資料後加入列表示例 user list list for i in range 10 2 print user list 通過列表生成式直接生成示例 user list x 2for x in range 10 print user ...