Erlo

Python 学习使用dict

2019-07-18 16:03:11 发布   126 浏览  
页面报错/反馈
收藏 点赞

数据按类型可划分为:

可变数据类型(不可哈希):元祖、string、int、bool  

不可变数据类型(可哈希):dict、list

 

集合本身是可变数据类型,元素是不可变数据类型

字典中的key必须是不可变数据类型,value可以是任意数据类型

字典的优点:二分查找查询、存储大量关系型数据

 

dict创建格式:

dic1 = dict(key1 = 20,
            key2 = 30)
print(dic1)     #{'key1': 20, 'key2': 30}
dic2 = dict({'key1':20,
             'key2':30,
             'key3':450})
print(dic2)     #{'key1': 20, 'key2': 30, 'key3': 450}
dic3 = dict((('key1',100),
             ('key2',200),
             ('key3',302)))
print(dic3)     #{'key1': 100, 'key2': 200, 'key3': 302}
dic4 = dict([('key1',100),
             ('key2',200),
             ('key3',302)])
print(dic4)     #{'key1': 100, 'key2': 200, 'key3': 302}
dic5 = {'key1':100,
        'key2':200}
print(dic5)     #{'key1': 100, 'key2': 200}

创建一个字典:

dic = {
       'name' : 'Jogn',
       'age' : 18,
       'height' : 170,
      }

增:

<1>通过键值对直接赋值

dic['name'] = 'JognsMoke'            #{'name': 'JognsMoke', 'age': 18, 'height': 170}    
dic['weight'] = 75            #{'name': 'JognsMoke', 'age': 18, 'height': 170, 'weight': 75}

<2>dict.setdefault()

有返回值,默认值为None,若该键存在则返回原值,若不存在则返回设置的默认值

dic.setdefault('height',177)    #{'name': 'Jogn', 'age': 18, 'height': 170}
dic.setdefault('sex','male')    #{'name': 'Jogn', 'age': 18, 'height': 170, 'sex': 'male'}

print(dic.setdefault('height',177))     #170
print(dic.setdefault('sex','male'))     #male

删:

<1>dict.pop()

删除字典指定的键值对,返回键所对应的值,键值必须要给出,否则返回默认值

print(dic.pop('name'))  #Jogn
print(dic.pop('name',None)) #None
print(dic.pop('name','该值已被弹出')) #该值已被弹出

<2>dict.popitem()

3.5(包括3.5)之前随机删除一个键值对,3.5之后删除最后的一对键值对 返回值为(key,value) 如果字典为空则返回 'popitem(): dictionary is empty'

print(dic.popitem())    #('height', 170) python 3.7

<3>dict.clear()

清空字典

dic.clear()
print(dic)  #{}

<4>del

删除键值对也可以删除整个字典,键名存在则删除该键值对,弱不存在则报错

del dic['name'] #{'age': 18, 'height': 170}
print(dic)

del dic['sex']  #KeyError: 'sex'

del dic
print(dic)  #name 'dic' is not defined

改:

<1>通过键值对直接改

<2>dict.update()

把字典二的键值对更新到字典一中,无返回值

dic2 = {
        'name' : 'Jane',
        'sex' :'female'
        }
dic.update(dic2)        
print(dic) #{'name': 'Jane', 'age': 18, 'height': 170, 'sex': 'female'}

dic.update(sex = 'female',hobby = 'sing')   #{'name': 'Jogn', 'age': 18, 'height': 170, 'sex': 'female', 'hobby': 'sing'}
print(dic)

dic.update([('sex','female'),('hobby','play')]) #{'name': 'Jogn', 'age': 18, 'height': 170, 'sex': 'female', 'hobby': 'play'}
print(dic)

查:

<1>通过键直接查询

没有此键则会报错

print(dic['name'])  #Jogn

<2>dict.get()

v1 = dic.get('name')    #Jogn
print(v1)
v2 = dic.get('hobby')   #None
print(v2)
v3 = dic.get('hobby','并未找到')    #并未找到
print(v3)

<3>for循环

print("打印字典键:") 
for i in dic:
    print(i)
'''打印字典键:
    name
    age
    height'''
    
print("打印字典键:")
for i in dic.keys():
    print(i)
'''打印字典键:
    name
    age
    height'''

print("打印字典值:")
for i in dic.values():
    print(i)
'''打印字典值:
    Jogn
    18
    170'''

print("打印去掉括号的字典键值对:")
for i,j in dic.items():
    print(i,j)
'''打印去掉括号的字典键值对:
    name Jogn
    age 18
    height 170'''

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认