四时宝库

程序员的知识宝库

Python学习之路「14」非数字数据类型-字典-dict

Python 字典(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {}

字典的定义

xiaoming_dict = {"name" : "小明",}

取值

print(xiaoming_dict["name"])
在取值时,如果指定的key不存在
# KeyError: '123' 
print(xiaoming_dict["123"]) 

增加/修改

# 如果key不存在,则新增一个键值对
xiaoming_dict["age"] = 18
print(xiaoming_dict)
# 如果key存在,则修改原有的一个键值对
xiaoming_dict["name"] = "小小明"
print(xiaoming_dict)

删除

xiaoming_dict.pop("name")
print(xiaoming_dict)
# 如果删除指定键值对时,所指定的key不存在
# KeyError: '123'
xiaoming_dict.pop("123")

统计键值对的数量

print(len(xiaoming_dict))

合并字典

type_dict = {"height" : 1.75,"age" : 22}
# 如果合并的字典包括原有的存在的键值对,则会覆盖原有的键值对
xiaoming_dict.update(type_dict)

清空键值对

xiaoming_dict.clear()

循环遍历整个字典

# 变量k是每次循环中,获取到的键值对的key
 xiaoming_dict = {"name" : "小明",
 "QQ" : "123456",
 "phone" : "10086",}
print(xiaoming_dict)
for k in xiaoming_dict:
 print("%s - %s" % (k,xiaoming_dict[k]))
# 使用 多个键值对,存储,描述一个物体的相关信息--描述更复杂的数据信息
# 将 多个字典放在一个列表中,在进行遍历
 card_list = [
 {"name" : "张山",
 "QQ号" : "123456",
 "手机号" : "10086"},
 {"name" : "王五",
 "QQ号" : "234567",
 "手机号" : "10010"},
 {"name" : "李四",
 "QQ号" : "345678",
 "手机号" : "10000"}
 ]
for card_info in card_list:
 print(card_info)
# 字典是一个无序的数据集合,使用print函数输出字典时,
# 输出顺序和定义顺序是不一致的
# "key" : "value"

# 以列表返回可遍历的(键, 值) 元组数组
# xiaoming_dict.items()

#和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
# xiaoming_dict.setdefault(key,default= None)

# 返回一个字典的浅复制
# xiaoming_dict.copy()

# xiaoming_dict.keys
# xiaoming_dict.update(dict2) !

创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
# xiaoming_dict.fromkeys(seq[,val])

# xiaoming_dict.pop() !

# 以列表返回字典中的所有值
# xiaoming_dict.values

#返回指定键的值,如果值不在字典中返回default值
# xiaoming_dict.get(key,default= None)


# xiaoming_dict.popitem
以上方法来自www.runoob.com

字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,

2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行,

In [1]: dict1 = {"a":[1,2]}
In [2]: print(dict1)
{'a': [1, 2]}
In [3]: dict2 = {"a":{"c":"d"}}
In [4]: print(dict2)
{'a': {'c': 'd'}}
In [5]: "a" in dict2
Out[5]: True
In [7]: test_dict = {"a" : 1,}
In [8]: test_dict["a"]
Out[8]: 1
In [9]: test_dict["b"]
KeyError: 'b'

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接