首页 > 编程语言 > 详细

Python-字典

时间:2020-07-12 21:05:08      阅读:46      评论:0      收藏:0      [点我收藏+]

什么是字典?

字典是另一种可变容器模型,且可存储任意类型对象。
典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
格式如下:
d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

注意:
(1). 同一个键不能出现两次,如果一个键被赋值两次,后边的键值会被记下,而前边的键值会被覆盖
(2). 键必须不可变,所以可以用数字,字符串或元组充当,列表不可以

 

 

创建字典的几种方式:

 

# 方式1
dic = dict((("one","小明"),("two","小李"),("three","小马")))
print(dic)      # {‘one‘: ‘小明‘, ‘two‘: ‘小李‘, ‘three‘: ‘小马‘}

# 方式2
dic = dict(one = "小明",two = "小李",three = "小马")
print(dic)      # {‘one‘: ‘小明‘, ‘two‘: ‘小李‘, ‘three‘: ‘小马‘}

# 方式3
dic = dict({"one":"小明","two":"小李","three":"小马"})
print(dic)      # {‘one‘: ‘小明‘, ‘two‘: ‘小李‘, ‘three‘: ‘小马‘}

# 方式4
dic = dict(zip(["one","two","three"],["小明","小李","小马"]))
print(dic)      # {‘one‘: ‘小明‘, ‘two‘: ‘小李‘, ‘three‘: ‘小马‘}

# 方式5 :
dic = dict.fromkeys("abcd","小明")
print(dic)      # {‘a‘: ‘小明‘, ‘b‘: ‘小明‘, ‘c‘: ‘小明‘, ‘d‘: ‘小明‘}

 

 

 

 

字典的常用方法

增:

# 1). 直接增加
dict = {"name":"小明","age":18}
dict["height"] = 180    # 如若字典内没有‘height‘这个键,则自动增加键值对
print(dict)         # {‘name‘: ‘小明‘, ‘age‘: 18, ‘height‘: 180}

# 2). 通过‘setdefault()‘增加
dict = {"name":"小明","age":18}
dict.setdefault("height",180)   # 如果没有该键,则自动增加键值对
print(dict)     # {‘name‘: ‘小明‘, ‘age‘: 18, ‘height‘: 180}

dict.setdefault("name","小马")    # 如果有该键,则不变
print(dict)     # {‘name‘: ‘小明‘, ‘age‘: 18, ‘height‘: 180}

# 返回返回值:
re = dict.setdefault("name")    # 有该键并且有值的情况下,返回值
print(re)       # 小明

 

 

删:

 

# 1). pop()通过key删除字典的键值对,有返回值,可设置返回值
dict = {"name":"小明","age":18}
re = dict.pop("name")
print(re)       # 小明
re1 = dict.pop("name","小马")     # 设置返回值
print(re1)      # 小马

# 2). popitem(): 删除最后一个键值对,有返回值
dict = {"name":"小明","age":18}
print(dict)     # {‘name‘: ‘小明‘, ‘age‘: 18}
re = dict.popitem()
print(re)       # (‘age‘, 18)

# 3). clear(): 清空字典
dict = {"name":"小明","age":18}
print(dict)     # {‘name‘: ‘小明‘, ‘age‘: 18}
dict.clear()
print(dict)     # {}
# 删除整个字典(返回变量类型):
del dict
print(dict)     # <class ‘dict‘>

 

Python-字典

原文:https://www.cnblogs.com/mamouren/p/13289600.html

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