Python入门实践12 | 字典(Dictionary)

系统 1988 0

Python入门实践12 ——字典(Dictionary)


字典(Dictionary)
一、目标

1、掌握字典的特征,key唯一,不可变。
2、掌握字典的常用操作。

二、要点

1、字典

字典是另一种可变容器模型,是一个无序、以键值对存储的数据类型,数据关联性强、唯一一个映射数据类型。

键:必须是可哈希(不可变的数据类型:字符串、数字、元组、bool)值,并且是唯一的。

字典(Dictionary)

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() 随机返回并删除字典中的一对键和值。
字典(Dictionary)——思维导图
三、步骤

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、版权属于时进军个人,转载需注明。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论