字典、集合生成式
阿新 • • 發佈:2018-12-17
字典生成式
需求1:假設有20個學生,學生分數在60~100之間,篩選出成績在90分以上的學生
方法一:
import random stuInfo={} for i in range(20): name = 'westos' + str(i) score = random.randint(60,100) stuInfo[name] = score print(stuInfo) stuInfo = {'westos'+ str(i):random.randint(60,100) for i in range(20)} highscore = {} for name,score in stuInfo.items(): if score > 90: highscore[name] = score print(highscore)
方法二:
print({name:score for name,score in stuInfo.items() if score > 90})
需求2:將所有的key值變為大寫
方法一:
d = dict(a=1,b=2)
new_d = {}
for i in d:
new_d[i.upper()] = d[i]
print('key轉化為大寫的字典:',new_d)
方法二:
print({k.upper():v for k,v in d.items()})
需求3:大小寫key值合併,統一以小寫輸出
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}) 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)
集合生成式
print({i ** 2 for i in {1, 2, 3}})
print({i ** 2 for i in {1, 2, 3, 9, 12} if i % 3 == 0})