首页 > 编程语言 > 详细

python-字典

时间:2020-05-02 10:44:05      阅读:40      评论:0      收藏:0      [点我收藏+]

字典

一、 字典

1.、 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢。

2.、 列表只能按照顺序存储,数据与数据之间关联性不强。

所以针对于上的缺点,需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典。

 

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

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

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

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

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

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

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

 当然,字典也有缺点:他的缺点就是内存消耗巨大。

二、 创建:

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

# 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}

 


# 方式5: 后面会讲到先了解
dic = dict(zip([one, two, three],[1, 2, 3]))

print(dic)

 

# 方式6: 字典推导式 后面会讲到
dic = { k: v for k,v in [(one, 1),(two, 2),(three, 3)]}

print(dic)

 

# 方式7:利用fromkey。
dic = dict.fromkeys(abcd,太白)

print(dic)  # {‘a‘: ‘太白‘, ‘b‘: ‘太白‘, ‘c‘: ‘太白‘, ‘d‘: ‘太白‘}

三、 增

     1、 通过键值对直接增加

dic = {name: 太白, age: 18}

dic[weight] = 75 # 没有weight这个键,就增加键值对

print(dic) # {‘name‘: ‘太白‘, ‘age‘: 18, ‘weight‘: 75}

dic[name] = barry # 有name这个键,就成了字典的改值

print(dic) # {‘name‘: ‘barry‘, ‘age‘: 18, ‘weight‘: 75}

2、 setdefault

dic = {name: 太白, age: 18}

dic.setdefault(height,175) # 没有height此键,则添加

print(dic) # {‘name‘: ‘太白‘, ‘age‘: 18, ‘height‘: 175}

dic.setdefault(name,barry) # 有此键则不变

print(dic) # {‘name‘: ‘太白‘, ‘age‘: 18, ‘height‘: 175}

#它有返回值

dic = {name: 太白, age: 18}

ret = dic.setdefault(name)

print(ret)  # 太白

四、 删

1、 pop 通过key删除字典的键值对,有返回值,可设置返回值。

dic = {name: 太白, age: 18}

# ret = dic.pop(‘name‘)

# print(ret,dic) # 太白 {‘age‘: 18}

ret1 = dic.pop(n,None)

print(ret1,dic) # None {‘name‘: ‘太白‘, ‘age‘: 18}

2、 popitem 3.5版本之前,popitem为随机删除,3.6之后为删除最后一个,有返回值

dic = {name: 太白, age: 18}

ret = dic.popitem()

print(ret,dic) # (‘age‘, 18) {‘name‘: ‘太白‘}

3、 clear 清空字典

dic = {name: 太白, age: 18}

dic.clear()

print(dic) # {}

4、 del 通过键删除键值对

dic = {name: 太白, age: 18}

del dic[name]

print(dic) # {‘age‘: 18}

5、 删除整个字典

del dic

五、 改

1、 通过键值对直接改

dic = {name: 太白, age: 18}

dic[name] = barry

print(dic) # {‘name‘: ‘barry‘, ‘age‘: 18}

2、 update

dic = {name: 太白, age: 18}

dic.update(sex=, height=175)

print(dic) 

# {‘name‘: ‘太白‘, ‘age‘: 18, ‘sex‘: ‘男‘, ‘height‘: 175}



dic = {name: 太白, age: 18}

dic.update([(1, a),(2, b),(3, c),(4, d)])

print(dic) 

# {‘name‘: ‘太白‘, ‘age‘: 18, 1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘}



dic1 = {"name":"jin","age":18,"sex":"male"}

dic2 = {"name":"alex","weight":75}

dic1.update(dic2)

print(dic1) 

# {‘name‘: ‘alex‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘weight‘: 75}

print(dic2) # {‘name‘: ‘alex‘, ‘weight‘: 75}

六、 查

1、 通过键查询 直接dic[key](没有此键会报错)

dic = {name: 太白, age: 18}

print(dic[name]) # 太白

2、 get

dic = {name: 太白, age: 18}

v = dic.get(name)

print(v) # ‘太白‘

v = dic.get(name1)

print(v) # None

v = dic.get(name2,没有此键)

print(v) # 没有此键

3、 keys()

dic = {name: 太白, age: 18}

print(dic.keys()) 

# dict_keys([‘name‘, ‘age‘])

4、 values()

dic = {name: 太白, age: 18}

print(dic.values()) 

# dict_values([‘太白‘, 18])

5、 items()

dic = {name: 太白, age: 18}

print(dic.items()) 

# dict_items([(‘name‘, ‘太白‘), (‘age‘, 18)])

python-字典

原文:https://www.cnblogs.com/gudexiao-1996/p/12817123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!