py06-python基础-字典
1、字典:
作用:存多個值,key-value存取,取值速度快,字典是無序的。
定義:key必須是可變類型,value可以是任意類型
? 定義方式:
info={'name':'egon','age':18,'sex':'male'}本質上
info=dict({'name':'egon','age':18,'sex':'male'}) 或
info=dict(name='egon',age=18,sex='male')
或
{}.fromkeys(('name','age','sex'),None) info=dict.fromkeys(('name','age','sex'),None)
?2、常用操作
取值:
info=dict(name='egon',age=18,sex='male') print(info['name']) #如果key值不存在,會報錯獲取值:
info=dict(name='egon',age=18,sex='male') print(info.get('name') info=dict(name='egon',age=18,sex='male')print(info.get('name1','not key')) #如果key值不存儲,不會報錯,會打印none,也可以指定值不存在時,打印信息
存值:
info={'name':'egon','age':18,'sex':'male'} info['height']=1.90 print(info)? 刪除值:
info={'name':'egon','age':18,'sex':'male'} info['height']=1.90 print(info.pop('age')) print(info)#如果key值不存在,會報錯
解決: info={'name':'egon','age':18,'sex':'male'}
info['height']=1.90
print(info.pop('age1','not key'))
print(info)
#不存在時,自定義打印,也可以是None info={'name':'egon','age':18,'sex':'male'}
info['height']=1.90
print(info.pop('age1',None))
print(info)
? 字典中的key是不可變類型,value是可變類型
key不可用是字符串,數字
key可以是元組,列表
cmd={'(a,b)':1} print(cmd['(a,b)'])? 字典的其他操作:
彈出key和value
info={'name':'egon','age':18,'sex':'male'} print(info.popitem()) print(info)?
獲取字典所有的key
info={'name':'egon','age':18,'sex':'male'} print(info.keys())獲取字典所有的value
info={'name':'egon','age':18,'sex':'male'} print(info.values())for循環獲取key
info={'name':'egon','age':18,'sex':'male'} for key in info.keys():print(key)for循環獲取value
info={'name':'egon','age':18,'sex':'male'} for value in info.values():print(value)獲取所有key和value,然后存儲到一個小元組里面
info={'name':'egon','age':18,'sex':'male'} print(info.items())一一對應的例子
key,value=('a','b') print(key) print(value)直接獲取字典的key和value
info = {'name': 'egon', 'age': 18, 'sex': 'male'} for key,value in info.items():print(key,value)拷貝一個字典
info = {'name': 'egon', 'age': 18, 'sex': 'male'} l=info.copy() print(l)清空字典
info = {'name': 'egon', 'age': 18, 'sex': 'male'} info.clear() print(info)更新字典
info = {'name': 'egon', 'age': 18, 'sex': 'male'} cmd={'hobby':'play1'} info.update(cmd) print(info)#用cmd 這個字典去更新info這個字典,沒有的會添加,如果有的會更新 info = {'name': 'egon', 'age': 18, 'sex': 'male'}
cmd={'name':'sb'}
info.update(cmd)
print(info)
?
空字典,追加內容
d={} print(d) d['name']='egon' d['age']=19 d['sex']='male' d['hobby']=[] d['hobby'].append('play1') d['hobby'].append('play2') d['hobby'].append('play3') print(d)#由于hobby可以是多個值,需要列表,這種方法,只能先定義一個空的列表,然后再添加值
?
空字典setfefault 會自動生成列表
d={} d['name']='egon' d['age']=19 d['sex']='male' d.setdefault('hobby',[]) print(d)#直接定義列表,然后再添加值 d={}
d['name']='egon'
d['age']=19
d['sex']='male'
d.setdefault('hobby',[]).append('play1')
d.setdefault('hobby',[]).append('play2')
d.setdefault('hobby',[]).append('play2')
print(d)
?
練習題
1 有如下值集合 [11,22,33,44,55,66,77,88,99,90],將所有大于 66 的值保存至字典的第一個key中,將小于 66 的值保存至第二個key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
d=[11, 22, 33, 44, 55, 66, 77, 88, 99, 90] l={'k1':[],'k2':[], } for key in d:if key > 66:l['k1'].append(key)else:l['k2'].append(key) print(l)?2?統計s='hello alex alex say hello sb sb'中每個單詞的個數
結果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
s='hello alex alex say hello sb sb' l={} word=s.split() for words in word:if words not in l:l[words]=1else:l[words]+=1 print(l)?
轉載于:https://www.cnblogs.com/yangxutao/p/7204943.html
總結
以上是生活随笔為你收集整理的py06-python基础-字典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zabbix监控可视化
- 下一篇: 理解JWT(JSON Web Token