day5-基础数据类型(dict)

目录

字典(dict)

1.1字典的创建

1.2增

(1)通过键值对直接增加

(2)setdefault()方法:

1.3删

(1)pop()方法:

(2)popitem()方法:

(3)del:

(4)clear()方法:清空

1.4改

(1)通过键值对 

(2) update()方法:

 1.4查:

get()方法:


字典(dict)

不可变(可哈希)的数据类型:int,str,bool,tuple。

可变(不可哈希)的数据类型:list,dict,set。

字典是Python中的映射类型,它以{}括起来,里面的内容是以键值对的形式储存的:

        Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的

        Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等。

     在Python3.5版本(包括此版本)之前,字典是无序的。

     在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序)

优点:

        (1)二分查找去查询(2)存储大量关系型数据

缺点:

        内存消耗巨大

1.1字典的创建

(1)方式一:

# 方式1:
dic1 = dict((('one', 1),('two', 2),('three', 3)))
dic2 = dict([('one', 1),('two', 2),('three', 3)])

print(dic1)  # {'one': 1, 'two': 2, 'three': 3}
print(dic2)  # {'one': 1, 'two': 2, 'three': 3}

 (2)方式二:

# 方式2:
dic = dict(one=1,two=2,three=3)
print(dic)  # {'one': 1, 'two': 2, 'three': 3}

  (3)方式三:

 # 方式3:
dic = dict({'one': 1, 'two': 2, 'three': 3})
print(dic)  # {'one': 1, 'two': 2, 'three': 3}

   (4)方式四:

# 方式4: 
dic = dict(zip(['one', 'two', 'three'],[1, 2, 3]))
print(dic)

   (5)方式五:

# 方式5: 字典推导式
dic = { k: v for k,v in [('one', 1),('two', 2),('three', 3)]}
print(dic)  

1.2增

dic1 = {'age':18,'name':'jin','sec':'male',}

(1)通过键值对直接增加

dic1['high'] = 185    #字典中原来没有键值对,就添加

print(dic1)   #{'age': 18, 'name': 'jin', 'sec': 'male', 'high': 185}

dic1['age'] = 16   #字典中原来有键值对,则更新值

print(dic1)    #{'age': 16, 'name': 'jin', 'sec': 'male'}

(2)setdefault()方法:

字典中有键值对不做任何改变,没有键值对则添加,如果value没有被设置值,则value默认为None

dic1.setdefault('weight')   #没有键值对,则添加,添加默认值为’None‘

print(dic1)     #{'age': 18, 'name': 'jin', 'sec': 'male', 'weight': None}

dic1.setdefault('weight',150)  #没有键值对,则添加

print(dic1)     #{'age': 18, 'name': 'jin', 'sec': 'male', 'weight': 150}

dic1.setdefault('name','二哥')  #有键值对,则不做任何改变

print(dic1)     #{'age': 18, 'name': 'jin', 'sec': 'male'}

1.3删

dic1 = {'age':18,'name':'jin','sec':'male',}

(1)pop()方法:

删除键值对,返回值为删除的键的值,可以设置返回值;如果删除的键不在字典中,并且没有设置返回值则会报错

print(dic1.pop('age'))    #18
print(dic1)               #{'name': 'jin', 'sec': 'male'}

print(dic1.pop('二哥'))     #报错:KeyError: '二哥'

print(dic1.pop('二哥',None))    #删除的键不在字典中,返回值为None

print(dic1.pop('age',None))     #删除的键在字典中,返回值为删除键的值

(2)popitem()方法:

随机删除(python3.6对字典进行了排序,默认删除最后一个),有返回值

#返回值是元组,里面是删除的键值。

print(dic1.popitem())  #('sec', 'male')

(3)del:

del dic1['name1']   #删除的键字典中没有,报错:KeyError: 'name1'

del dic1['name']
print(dic1)         #{'age': 18, 'sec': 'male'}

del dic1            #删除整个字

(4)clear()方法:清空

print(dic1.clear())   #清空字典,返回值为None
print(dic1)           #{}

1.4改

dic1 = {'age':18,'name':'jin','sec':'male',}

(1)通过键值对 

dic1['age'] = 16   #字典中原来有键值对,则更新值
print(dic1)   {'age': 16, 'name': 'jin', 'sec': 'male'}

(2) update()方法:

将dic1中的键值对更新到dic2中

dic2 = {"name":"alex","weight":75}
dic2.update(dic1)

print(dic1)     #{'age': 18, 'name': 'jin', 'sec': 'male'}
print(dic2)     #{'name': 'jin', 'weight': 75, 'age': 18, 'sec': 'male'}

 1.4查:

print(dic1.keys(),type(dic1.keys()))  #dict_keys(['age', 'name', 'sec']) <class 'dict_keys'>

print(dic1.values())     #dict_values([18, 'jin', 'male'])

print(dic1.items())      #dict_items([('age', 18), ('name', 'jin'), ('sec', 'male')])

打印字典的key:
for i in dic1.keys():
    print(i)
#打印字典的key
for i in dic1:
    print(i)
#打印字典的value:
for i in dic1.values():
    print(i)
#打印字典的key和value:
for k,v  in dic1.items():
    print(k,v)

get()方法:

返回键的值,如果字典中没有键返回默认值None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值