Python学习笔记(七)—字典的学习

总结内容:

  1、字典的定义

  2、字典的好处

  3、字典的增删改查

  4、字典常用方法及内置函数

  5、字典的多层嵌套

  6、字典的循环

  7、字典小练习


1、字典的定义

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

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

2、字典的好处:

1、取数据方便,知道key的值就能将value的值取到

2、速度快

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

例如:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

3、字典的增删改查

3.1、字典查询:

1、get方法

 

如果key 不存在,在取不到key的值的情况下,则显示为null

 

如果key的值不存在,但是设置了默认值,那么在取不到值时显示默认值:

 

2、[ ]方式取值

 

注意:如果用[]方式取值的话,如果key不存在则会报错

3.2、字典增加:

方式一:[ ]方式,在key 存在的情况下可以覆盖原字典中的值,在key不存在的情况下直接添加该值

 

注意:字典是无序的,所以输出的数据不一定是按有序的顺序输出

方式二:setdefault方法,在key存在的情况下不能修改原字典中的值

info.setdefault('addr','55555')

 

3.3、字典的修改:

使用[]方式修改字典的value值

 

update方式可以将两个字典进行合并操作

dict1 = {'name':'test'}
print(dict1)
dict2 = {'age':19}
dict1.update(dict2)
print(dict1)

运行结果:
{'name': 'test'}
{'name': 'test', 'age': 19}

3.4、字典的删除:

方式一:

pop方式:指定key删除

 

方式二:

popitem:随机删除一个key

方式三:

del :指定key来删除

 

方式四:

clear方式:清空字典

 


4、字典常用方法及内置函数:

values:输出字典中values的值

keys:输出字典所有的key的值

items:输出子典中所有的key:values值

 

Python内置方法:

函数及描述

1

radiansdict.clear()
删除字典内所有元素

2

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

3

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

4

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

5

key in dict
如果键在字典dict里返回true,否则返回false

6

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

7

radiansdict.keys()
以列表返回一个字典所有的键

8

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

9

radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里

10

radiansdict.values()
以列表返回字典中的所有值

11

pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。

Python字典包含了以下内置函数:

序号

函数及描述

实例

1

len(dict)
计算字典元素个数,即键的总数。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> len(dict)

3

2

str(dict)
输出字典,以可打印的字符串表示。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> str(dict)

"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"

3

type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> type(dict)

<class 'dict'>


5、多层嵌套:

 

实例:

多次嵌套数据的查询:

 

多次嵌套修改数据

 

多次嵌套添加数据:

 


6、字典的循环操作

直接循环字典打印的是字段的key值:

 

同时取到key:values的循环方式,需要使用items方法:

 

注意:字典里面用in来判断的话直说判断key的值,value的值是不进行判断的


7、字典小练习

users = {
    'test0':'123456',
    'test1':'456789',
}
#所有的账号和密码
# username
# pwd
# cpwd
# print( '123456' in users )   #字典里面用in来判断的话,只是判断key是否存在
for i in range(3):
    username = input('账号:').strip()
    passwd = input('密码:').strip()
    cpasswd = input('密码确定:').strip()
    if username=='' or passwd=='' or cpasswd=='':
        print('用户名/密码不能为空')
    elif username in users:
        print('用户名已经被注册!')
    elif passwd!=cpasswd:
        print('两次输入的密码不一致')
    else:
        print('恭喜,注册成功!')
        # users.setdefault(username,passwd)
        users[username]=passwd
        break
else:
    print('错误次数过多')
print(users)
原文地址:https://www.cnblogs.com/beginner-boy/p/8647392.html