84. python中的字典生成式

Lesson 84 python中的字典生成式

1. 示例1:選出20個學生中成績在90分以上的學生

需求:假設有20個學生,學生名爲westosX,學生分數在60-100之間
#選出成績在90分以上的學生

import random  #定義一個生成隨機數的包

 stuInfo = {}  #定義一個空字典,用來存儲學生信息

 for i in range(20):  #i從019
     name = 'westos' + str(i) 學生名稱爲westos加數字,將數字類型轉爲字符串類型才能與westos連接
     score = random.randint(60,100)  #隨機生成60100的整數作爲學生的分數
     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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章