字典接触和使用

内容:

  • 字典基础知识
  • 字典基本操作

 

一、字典基础知识

1.定义

字典(Dict),是可变的无序集合,同时也是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号({ })表示字典的开始和结束,元素之间用逗号( , )分隔。

2.键值对

由键(Key)和值(Value)组成,中间用冒号( : )隔开,字典是属于一对一映射关系的数据类型

>>> dic={'a':1, 'b':'hello', 'c':'中国'}
>>> len(dic)
3

二、字典基本操作

1.字典的基本方法

  • clear:           # 字典清空
  • copy:           # 复制生成另外一个字典
  • fromkeys:    # 使用给定的键生成新的字典,每个键默认对应的值为None
  • get:              # 根据指定键,返回指定值,访问键不存在时,返回None
  • items:          # 以元组数组的形式返回字典中的元素
  • keys:           # 以类似列表的形式返回字典中的键
  • values:        # 以类似列表的形式返回字典中的值
  • pop:            # 删除指定键的元素,并返回指定键对应的值
  • popitem:     # 随机删除元素,并返回元素
  • setdefault:  # 当字典中键不存在时,设置键值对;当键存在时,获取相应键对应的值
  • update:       # 利用一个字典更新另外一个字典

注意:

(1)字典内部结构由哈希表构成,通过唯一的键访问对应的值,所以字典对象没有提供排序功能,字典数据类型是无序的。

(2)字典的元素(Key)不能重复(重复的默认只认最后一个值)

2.示例(字典的增删查改、遍历)

(1)通过 setdefault(obj1,obj2) 增加元素(update()方法也是可以增加元素的)

>>> dit={'a':3, 'b':2}
>>> print(dit)
{'a': 3, 'b': 2}
>>> dit.setdefault('a')        # 只传一个参数时,默认该参数为Key,元素存在时返回对应值,不存在是设置该值为None
3
>>> dit.setdefault('a',10)     # 元素存在,返回值3
3
>>> print(dit)
{'a': 3, 'b': 2}
>>> dit.setdefault('c',10)     # 元素不存在,增加该元素 
10
>>> print(dit)
{'a': 3, 'b': 2, 'c': 10}

(2)利用 del 函数、pop() 方法、popitem() 方法删除(三个方法若是对不存在的元素进行操作,都将报错)

>>> dit={'a':1, 'b':2, 'c':3}
>>> del(dit['a'])                                           # 使用del删除指定元素
>>> print(dit)
{'b': 2, 'c': 3}
>>> dit={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> del(dit['a'])
>>> print(dit)
{'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
>>> dit.pop('b')                                            # 使用pop删除指定元素并返回改元素值 
2
>>> print(dit)
{'c': 3, 'd': 4, 'e': 5, 'f': 6}
>>> dit.pop('c',4)                                          # 参数 ‘值’ 可加可不加,但是 ‘键’ 一定要加
3
>>> print(dit)
{'d': 4, 'e': 5, 'f': 6}
>>> dit.popitem()                                           # 使用popitem随机删除一个元素,并返回该元素(元组)
('f', 6)
>>> del(dit)                                                # 使用del删除整个字典
>>> print(dit)
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    print(dit)
NameError: name 'dit' is not defined
>>> 

(3)通过 Key 或者 get() 方法查找字典值

>>> dit={'a':1, 'b':2, 'c':3}
>>> dit['b']
2
>>> dit['d']
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    dit['d']
KeyError: 'd'
>>> dit.get('b')
2
>>> dit.get('d')
>>> 
>>> # 注意:区别在于用Key查找,若元素不存在,会报错,而用get()方法不会报错,而是显示空值

(4)通过赋值或者 update() 方法对字典进行修改(或增加)

>>> dit1={'a':1, 'b':2, 'c':3}
>>> dit2={'a':4, 'c':10, 'd':7}
>>> dit1.update(dit2)                          # 通过update()更新字典
>>> print(dit1)
{'a': 4, 'b': 2, 'c': 10, 'd': 7}
>>> dit1.update({'e':9})                       # 通过update()增加元素
>>> print(dit1)
{'a': 4, 'b': 2, 'c': 10, 'd': 7, 'e': 9}
>>> dit1['e':16]
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    dit1['e':16]
TypeError: unhashable type: 'slice'
>>> dit['e']=16
>>> print(dit1)
{'a': 4, 'b': 2, 'c': 10, 'd': 7, 'e': 9}
>>> dit1['f']=14                               # 通过赋值增加元素或修改元素值
>>> print(dit1) 
{'a': 4, 'b': 2, 'c': 10, 'd': 7, 'e': 9, 'f': 14}
>>> 

(5)a.通过 item() 遍历字典所有键值对

>>> dit={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> for everyone in dit.items():
    print(everyone)
('a', 1)
('b', 2)
('c', 3)
('d', 4)
('e', 5)
('f', 6)

b.通过 key() 方法遍历所有键(此处的key()是可以不加的,得到的结果一样)

  >>> for key in dit.keys():
     print(key)

a
b
c
d
e
f

>>> for key in dit:
    print(key)    
a
b
c
d
e
f

c.通过已获取的key 遍历所有值或者使用 values() 方法遍历字典值

>>> for keys in dit:
    print(dit[keys])

1
2
3
4
5
6
>>> for value in dit.values():
    print(value)

1
2
3
4
5
6

 3.字典的其他操作

(1)in 成员操作

>>> dit={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> if 'a' in dit:
    print("a in dit")

(2)clear() 方法

>>> dit={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> dit.clear()
>>> print(dit)
{}
>>> 

(3)copy() 方法

>>> dit1={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> dit2=dit1.copy()
>>> print(dit2)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
>>> id(dit1)
2586168101264
>>> id(dit2)
2586169142800
>>> dit3=dit1              # 直接通过赋值和copy()方法是有区别的,copy()方法属于深度赋值,和原来的互不干扰
>>> id(dit3)
2586168101264
>>> 

(4)fromkeys() 方法

>>> dit1={'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
>>> dit2=dit1.fromkeys(['g','h','i'])
>>> print(dit2)
{'g': None, 'h': None, 'i': None}
>>> print(dit1)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
>>>   # 可以看出,fromkeys()方法得到的结果和原始的字典无关,都是根据提供的键生成一个新的字典

转载于:https://www.cnblogs.com/tuooo/p/11514293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值