python字典进行大写转化_python之字典的增删改查
1.列表的缺點
列表可以存儲大量的數據,數據之間的關聯性不強。
列表的查詢速度比較慢。
容器型數據類型:dict
2.數據類型的分類(可變與不可變)
可變(不可哈希)的數據類型:list dict set
不可變(可哈希)的數據類型:str bool int tuple
3.字典:{ }括起來,以鍵值對的數據類型
dic={'太白':
{'name':'太白金星','age':18,'sex':'男'},
'python21':
['xaiojiayu','xiaojinyu','xiaoyouyu','xaioliyu']
}
(1)鍵必須的不可變的數據類型并且唯一:int,str(常用) (bool,tuple幾乎不用)
值可以是任意數據類型,對象。
字典在 3.5版之前(包括3.5)是無序的。
字典在3.6會按照初次建立的順序排列,學術上不認為是有序的。
字典3.7x以后都是有序的。
(2)字典的缺點:以空間換時間。
字典的優點:字典的查詢速度非常快,存儲關聯性數據。
4.字典的創建方式
(1)方式一
dic=dict((('one',1),('two',2),('three',3)))
print(dic) #{'one': 1, 'two': 2, 'three': 3}
(2)方式二
dic=dict(one=1,two=2,three=3)
print(dic) #{'one': 1, 'two': 2, 'three': 3}
(3)方式三
dic=dict({'one':1,'two':2,'three':3})
print(dic) #{'one': 1, 'two': 2, 'three': 3}
(4)驗證字典的合法性
1)dic={[1,2,3]:'alex',1:666} #鍵要不可變的數據類型
print(dic) #報錯,不可變的數據類型
2)dic={1:'alex',1:'太白',2:'wusir'} #鍵要唯一
print(dic) #{1: '太白', 2: 'wusir'}
5.字典的增刪改查
鍵值對:
酒店: 鍵:房間號,0-99 值:房間 里面放什么數據都可以
(1)增
1)直接增加 有則改之,無則增加
dic={'name':'太白','age':18}
dic['sex']='男'
print(dic) #{'name': '太白', 'age': 18, 'sex': '男'}
dic['age']=23 #改
print(dic) #{'name': '太白', 'age': 23}
2)setdefault 有則不變,無則增加
①
dic.setdefault('hobby')
print(dic) #{'name': '太白', 'age': 18, 'hobby': None}
②
dic.setdefault('hobby','球類運動')
print(dic) #{'name': '太白', 'age': 18, 'hobby': '球類運動'}
③
dic.setdefault('age',45)
print(dic) #{'name': '太白', 'age': 18}
dic={'name':'太白','age':18}
(2)刪
1)pop 按照鍵去刪除鍵值對,有返回值 ***
設置第二個參數則無論字典中有無此鍵都不會報錯
ret=dic.pop('age')
print(ret) #18
print(dic) #{'name': '太白'}
1.1)
ret=dic.pop('hobby','沒有此鍵')
print(ret) #沒有此鍵
print(dic) #{'name': '太白', 'age': 18}
2)clear 清空 **
dic.clear()
print(dic) #{}
3)del **
del dic['age']
print(dic) #{'name': '太白'}
del dic['age1']
print(dic) #沒有此鍵,則報錯
(3)改
dic={'name':'太白','age':18}
dic['name']='alex'
print(dic) #{'name': 'alex', 'age': 18}
(4)查
dic={'name':'太白','age':18,'hobby_list':['直男','鋼管','開車']}
(1)print(dic['hobby_list']) #['直男', '鋼管', '開車']
2)get *** 推薦使用
l1=dic.get('hobby_list')
print(l1) #['直男', '鋼管', '開車']
l1=dic.get('hobby_list1')
print(l1) #None
l1=dic.get('hobby_list2','沒此鍵')
print(l1) #沒此鍵
(5)三個特殊的 key() values() items()
1)
dic={'name':'太白','age':18,'hobby_list':['直男','鋼管','開車']}
print(dic.keys(),type(dic.keys()))#dict_keys(['name', 'age', 'hobby_list'])
2)可以轉化成列表
print(list(dic.keys())) #['name', 'age', 'hobby_list']
for key in dic.keys():
print(key)
>>>
name
age
hobby_list
或者
for key in dic:
print(key)
>>>name
age
hobby_list
3)values() 轉化成值
①print(dic.values()) #dict_values(['太白', 18, ['直男', '鋼管', '開車']])
②print(list(dic.values())) #['太白', 18, ['直男', '鋼管', '開車']]
③for value in dic.values():
print(value)
>>>
太白
18
['直男', '鋼管', '開車']
4)items() 所有的鍵值對
①print(dic.items()) #dict_items([('name', '太白'), ('age', 18), ('hobby_list', ['直男', '鋼管', '開車'])])
②for i in dic.items():
print(i)
>>>
('name', '太白')
('age', 18)
('hobby_list', ['直男', '鋼管', '開車'])
③ 利用元組的拆包
for key,value in dic.items():
print(key,value)
>>>
name 太白
age 18
hobby_list ['直男', '鋼管', '開車']
面試題
對a,b互換
a=18
b=12
a,b=b,a
print(a,b) #12 18
6. 字典的嵌套
dic = {'name_list': ['王雙', 'alex', '孫飛', 'taibai'],
1: {'name': 'taibai', 'age': 18, 'sex': '男'},
(1, 2): [100, {'ip':'192.168.1.1', 'port': 3306}]
}
1). 給name_list對應的列表追加一個值:司徒大人
dic['name_list'].append('司徒大人')
print(dic)
2). 將name_list對應的alex變成全部大寫
dic['name_list'][1]=dic['name_list'][1].upper()
print(dic)
3). 將1對應的字典添加一個鍵值對:weight:75
dic[1].setdefault('weight',75)
dic[1]['weight']=75
print(dic)
4). 將1對應的字典的name鍵對應的名字taibai換成alex
dic[1][0]=dic[1]['alex']
dic[1]['name']='alex'
print(dic)
5). 將{'ip': '192.168.1.1', 'port': 3306}此字典的port鍵值對刪除
dic[(1,2)][1].pop('port')
print(dic)
7.update
dic = {"name":"jin","age":18,"sex":"male"}
dic.update(a='666',b='333')
print(dic) #{'name': 'jin', 'age': 18, 'sex': 'male', 'a': '666', 'b': '333'}
dic.update(a='666',b='333',name='taibai')
print(dic) #{'name': 'taibai', 'age': 18, 'sex': 'male', 'a': '666', 'b': '333'}
總結
以上是生活随笔為你收集整理的python字典进行大写转化_python之字典的增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何把睡袋转给别人_微信收到的语音如何转
- 下一篇: 录制出来的是黑屏_打开好哈录屏或者OBS