Python入门实践12 ——字典(Dictionary)
一、目标
1、掌握字典的特征,key唯一,不可变。
2、掌握字典的常用操作。
二、要点
1、字典
字典是另一种可变容器模型,是一个无序、以键值对存储的数据类型,数据关联性强、唯一一个映射数据类型。
键:必须是可哈希(不可变的数据类型:字符串、数字、元组、bool)值,并且是唯一的。
2、定义
字典的每个键值(key=>value)对用冒号( : )分割,每个对之间用逗号( , )分割,整个字典包括在花括号( {}) 中。
格式如下:
d = {key1 : value1, key2 : value2 }
-
键必须是唯一的。不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
-
键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,
-
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
1)、{}直接创建字典
scores = {'语文': 89, '数学': 92, '英语': 93};
2)、使用关键字参数来创建字典
dict6 = dict(spinach = 1.39, cabbage = 2.59)
print(dict6);
3、字典里的值
把相应的键放入到方括号中。
如d[“key1”]
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
4、字典的操作
1)、增加
(1)dict[key] = value;
添加 key-value 对,如果该键已存在,则会覆盖之前的值 ,不存在的 key ,添加到字典序列后。
(2) setdefault(key,value)
字典调用该函数,参数“key”为必填,“value”如果不填写默认为None,这个函数的作用可以避免覆盖已存在的键。
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
print(scores.setdefault("化学",100));
(3)、dict.update(dict2)
dict2 -- 添加到指定字典dict里的字典。
2)、删除
(1)、del dict[key] 删除键对应的条目
del dict['Name'] # 删除键是'Name'的条目
del dict # 删除字典
(2)、dict.clear() 清空字典所有条目
dict.clear() # 清空字典所有条目
(3)、dict.pop("key")
(4)、dict.popitem()随机删除
3)、修改
dict[key] = value;
4)、查找
(1)、get(key)
返回对应key的值
(2)、dic[key]
对应key的值
(3)、in
判断字典里面存不存在这个key。
print('key' in dic ) # 有的话返回TRUE
(4)、dic.values()
查询所有的values。
print(dic.values)
(5)、dic.keys()
查询所有的key。
print(idic.keys())
5、内置函数
序号 | 函数 | 描述 |
---|---|---|
1 | cmp(dict1, dict2) | 比较两个字典元素。 |
2 | len(dict) | 计算字典元素个数,即键的总数。 |
3 | str(dict) | 输出字典可打印的字符串表示。 |
4 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
6、内置方法
序号 | 函数 | 描述 |
---|---|---|
1 | dict.clear() | 删除字典内所有元素 |
2 | dict.copy() | 返回一个字典的浅复制 |
3 | dict.fromkeys(seq[, val]) | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 | dict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
5 | dict.has_key(key) | 如果键在字典dict里返回true,否则返回false |
6 | dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
7 | dict.keys() | 以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
10 | dict.values() | 以列表返回字典中的所有值 |
11 | pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | popitem() | 随机返回并删除字典中的一对键和值。 |
三、步骤
1、新建新建ex12.py文件。
2、录入实例中代码。
3、运行。
四、实例(Python 3.0+)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'jungle'
__mtime__ = '2019-08-28'
"""
scores = {'语文': 89, '数学': 92, '英语': 93};
print(scores);# 空的花括号代表空的dict
empty_dict = {};
print(empty_dict);
# 使用元组作为dict的key
dict2 = {(20,30):'good', 30:'bad'};
print(dict2,dict2[20,30]);
# 使用关键字参数来创建字典
dict6 = dict(spinach = 1.39, cabbage = 2.59)
print(dict6) # {'spinach': 1.39, 'cabbage': 2.59}
#调用字典的值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print( "dict['Name']: ", dict['Name']);
print( "dict['Age']: ", dict['Age']);
# 对不存在的key赋值,就是增加key-value对
scores['物理'] = 99;
print(scores.setdefault("化学",100));
print(scores) ;
# update把另一字典添加到一个字典
dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }
dict.update(dict2)
print("Value : %s" % dict);
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print(dict);
# 删除键是'Name'的条目
del dict['Name']
print(dict);
dict.clear() # 清空字典所有条目
del dict # 删除字典
####字典的定义 key: value
info ={
'stu1001':"TengLan Wu",
'Stu1002':"Longze Loula",
'stu1103':"XiaoZe Maliya",
}
#####查询 字典的数据###############
#####查询所有,但是字典是无序的
print(info);
#如果查询一个只需要查询对方的key
print(info["stu1001"]);
#不报错方式查询(安全点)
print(info.get("stu1001"));
#判断字典里面存不存在这个key
print('stu1005' in info ); # 有的话返回TRUE
#查询所有的values
print(info.values());
#查询所有的key
print(info.keys());
print(dir(dict));
五、运行输出:
{'语文': 89, '数学': 92, '英语': 93}
{}
{(20, 30): 'good', 30: 'bad'} good
{'spinach': 1.39, 'cabbage': 2.59}
dict['Name']: Zara
dict['Age']: 7
100
{'语文': 89, '数学': 92, '英语': 93, '物理': 99, '化学': 100}
Value : {'Name': 'Zara', 'Age': 7, 'Sex': 'female'}
{'Name': 'Zara', 'Age': 7, 'Class': 'First'}
{'Age': 7, 'Class': 'First'}
{'stu1001': 'TengLan Wu', 'Stu1002': 'Longze Loula', 'stu1103': 'XiaoZe Maliya'}
TengLan Wu
TengLan Wu
False
dict_values(['TengLan Wu', 'Longze Loula', 'XiaoZe Maliya'])
dict_keys(['stu1001', 'Stu1002', 'stu1103'])
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
注:
1、撰写内容来源于个人收集的文献,属学术探究范畴。
2、版权属于时进军个人,转载需注明。