python—字典
1.字典的含義:
字典和列表類似,是可變序列,與列表不同的是,字典是無序的可變序列,保存的內容是以 鍵值對 的形式存放的。鍵是唯一的,而值可以是多個。值可以取任意數(shù)據(jù)了類型,但鍵必須是不可變的。
創(chuàng)建一個字典:
1 . 定義字典時,每個元素都包含兩個部分“鍵(key)“和“值(value)“。
2 . 創(chuàng)建字典時,在鍵(key)和值(value)只見用冒號分隔,相鄰兩個元素用逗號分隔,所有元素用大括號括起來。
例如:
創(chuàng)建一個空字典:
s = {} 方法一 print(s)運行結果: {}d = dict() 方法二 print(d)運行結果: {}字典的鑲套:
student = {'123':{'name':'tom','age':18,'score':99},'456':{'name':'lily','age':19,'score':100} }print(student['123']['name'])運行結果為: tom2. 字典的特征:
1 . 通過鍵(key)而不是通過索引來讀取字典
d = {'1':'a','2':'b' } print(d['1'])運行結果: a2 . 成員操作符(針對key)
d = {'1':'a','2':'b' } print('1' in d) print('1' not in d)運行結果: True False3 . for循環(huán) 針對key
d = {'1':'a','2':'b' } for key in d:print(key)運行結果: 1 24 . 遍歷字典,輸出字典的key和對應的值
d = {'1':'a','2':'b' } for key in d:print(key,d[key])運行結果: 1 a 2 b3 . 字典元素的查看、增加、刪除
1 . 查看字典的值:
service = {'http':80,'ftp':23,'ssh':22 } print(service.keys()) 查看字典的key值運行結果: dict_keys(['http', 'ftp', 'ssh'])print(service.values()) 查看字典的value值運行結果: dict_values([80, 23, 22])print(service.items()) 查看字典的key-value值運行結果: dict_items([('http', 80), ('ftp', 23), ('ssh', 22)])print(service['http']) 通過key值查找value值(key值不存在時會報錯)運行結果: 80print(service.get('http')) 使用get查看key的value值,若key存在,返回對應的value值運行結果: 80print(service.get('https','443')) 若key不存在,返回None 或者設定好的默認值。運行結果: 4432 . 字典元素的增加:
service = {'http':80,'ftp':23,'ssh':22 } service['https'] = 443 print(service) 如果key值不存在,則添加對應的key-value值運行結果: {'http': 80, 'ftp': 23, 'ssh': 22, 'https': 443}service['ftp'] = 21 print(service) 如果key值存在,則更新對應的value值運行結果: {'http': 80, 'ftp': 21, 'ssh': 22}service_backup = {'tomcat':8080,'mysql':3306 } service.update(service_backup) 增加多個key值 print(service)運行結果: {'http': 80, 'ftp': 23, 'ssh': 22, 'tomcat': 8080, 'mysql': 3306}或者可以這樣寫: service.update(flask=9000,dns=53) print(service)運行結果: {'http': 80, 'ftp': 23, 'ssh': 22, 'flask': 9000, 'dns': 53}service.setdefault('http',9090) 如果key值存在:不做修改 print(service)運行結果: {'http': 80, 'ftp': 23, 'ssh': 22}service.setdefault('oracle',44575) 如果key值不存在,則添加對應的key-value print(service)運行結果: {'http': 80, 'ftp': 23, 'ssh': 22, 'oracle': 44575}3 . 字典元素的刪除:
service = {'http':80,'ftp':23,'ssh':22 } del service['http'] 刪除key值和value值 print(service)運行結果: {'ftp': 23, 'ssh': 22}item = service.pop('http') pop刪除指定key對應的value值 print(item) 如果key存在,刪除,并且返回刪除key對應的value(可以用變量取接收) print(service) 如果不存在,直接報錯運行結果: 80 {'ftp': 23, 'ssh': 22}item = service.popitem() popitem刪除最后一個key-value值 print(item) print(service)運行結果: ('ssh', 22) {'http': 80, 'ftp': 23}service.clear() 清空字典內容 print(service)運行結果: {}練習:
1 . 數(shù)字重復統(tǒng)計:
1). 隨機生成1000個整數(shù);
2). 數(shù)字的范圍[20, 100],
3). 升序輸出所有不同的數(shù)字及其每個數(shù)字重復的次數(shù);
2 . 重復的單詞: 此處認為單詞之間以空格為分隔符, 并且不包含,和 . ;
# 1. 用戶輸入一句英文句子;
# 2. 打印出每個單詞及其重復的次數(shù);
3 . 隨機生成100個卡號;
1 .卡號以6102009開頭, 后面3位依次是 (001, 002, 003, 100),
2. 生成關于銀行卡號的字典, 默認每個卡號的初始密碼為"redhat";
3. 輸出卡號和密碼信息, 格式如下:
代碼如下:
card_ids =[] # 生成100個卡號 for i in range(100):# %.3d:代表整型數(shù)占3位s = '6102009%.3d' %(i+1)# 將每次生成的卡號都加入到列表中card_ids.append(s)card_ids_dict = {}.fromkeys(card_ids,'redhat') # print(card_ids_dict) print('卡號\t\t\t\t\t密碼') for key in card_ids_dict:print('%s\t\t\t%s' %(key,card_ids_dict[key]))4 . 判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)
hah_li = [] for i in range(101,200):for k in range(2,i):if i%k == 0:breakelse:hah_li.append(i) print(hah_li)總結
- 上一篇: java 谓词_java8-谓词(pre
- 下一篇: go在方法中修改结构体的值_[Go]结构