Lesson 84 python中的字典生成式
1. 示例1:選出20個學生中成績在90分以上的學生
需求:假設有20個學生,學生名爲westosX,學生分數在60-100之間
#選出成績在90分以上的學生
import random #定義一個生成隨機數的包
stuInfo = {} #定義一個空字典,用來存儲學生信息
for i in range(20): #i從0到19
name = 'westos' + str(i) 學生名稱爲westos加數字,將數字類型轉爲字符串類型才能與westos連接
score = random.randint(60,100) #隨機生成60到100的整數作爲學生的分數
stuInfo[name] = score #給每個name賦value值
# print(stuInfo)
highscore = {} #定義一個字典,存儲高分(成績在90分以上)
for name,score in stuInfo.items(): #查看stuInfo字典的name和score鍵值對
if score > 90: #如果分數大於90
highscore[name] = score #就將分數賦給highscore字典
print(highscore)
字典生成式
print({name: score for name,score in stuInfo.items() if score > 90})
2. 示例2:將列表key值變爲大寫
d = dict(a=1,b=2), 將所有的key值變爲大寫
d = dict(a=1,b=2)
# print(d)
new_d = {} #定義一個空字典
for i in d: #遍歷字典元素
new_d[i.upper()] = d[i] #將元素變成大寫放入新字典
print(new_d)
可以看到,key值的小寫字母變成了大寫字母
字典生成式
print({k.upper(): v for k,v in d.items()})
3. 示例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() #將鍵的大寫變成小寫賦給low_k變量
if low_k not in new_d: 如果low_k的元素不在new_d
new_d[low_k] = v 將對應的value值給new_d
else:
new_d[low_k] += v #否則就給原有的元素加上value值
print(new_d)
字典生成式
print({k.lower(): d.get(k.lower(),0) + d.get(k.upper(),0) for k in d}) #打印小寫字母:通過鍵來獲得大小寫字母的value值,並且返回i0