栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python-字典

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-字典

一、字典的主要特性
  1. 字典是一种无序的可变序列
  2. 字典可以存放任务类型对象,以键值对形式存放
  3. 字典中的键必须是唯一的,但是则不必
  4. 字典中的键必须是不可变的(可以是字符串,数字、元组等,列表不行)
二、字典的创建
  1. 空字典
    dictionary ={}
  2. 通过给定的键值对创建
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
  1. 通过dict对象的fromkeys()方法创建值为空的字典
    dictionary = dict.fromkeys(list1)
    参数说明:
    dictionary:表示字典的名称
    list1:作为字典的键的列表
list1=["张三","李四","王五"]
dictionary = dict.fromkeys(list1)
print(dictionary)

执行结果如下:

{'张三': None, '李四': None, '王五': None}

Process finished with exit code 0
  1. 通过映射函数创建字典
    语法如下:
    dictionary=dict(zip(list1,list2))
    参数说明:
    dictionary:表示字典的名称
    zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以将zip对象使用tuple()函数转换成元组;如果想得到列表,则可以使用list()函数将其转换成列表。
list1=["张三","李四","王五"]
list2=[20,21,22]
dictionary = dict(zip(list1,list2))
print(dictionary)

运行结果如下:

{'张三': 20, '李四': 21, '王五': 22}

Process finished with exit code 0
三、访问字典
  1. 通过指定的键得到对应的值
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

运行结果如下:

dict['Name']:  Runoob
dict['Age']:  7

Process finished with exit code 0
  1. 如果指定的键不存在,则会抛出异常
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Alice']: ", dict['Alice'])

运行结果如下:

Traceback (most recent call last):
  File "E:/PC/untitled/练习/test.py", line 96, in 
    print("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'

Process finished with exit code 1

if判断避免该异常产生

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

print("dict['Alice']: ", dict['Alice'] if 'Alice' in dict else '键不存在' )

结果如下:

dict['Alice']:  键不存在

Process finished with exit code 0
  1. 使用字典对象的get()方法获取指定键的值
    语法如下:
    dictionary.get(key,default)
    key:为指定的键
    default:可选项,当指定的键不存在是,返回的默认值,如果省略则返回None
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict.get('Name','键不存在'))
print("dict['Alice']: ", dict.get('Alice','键不存在'))

运行结果如下:

dict['Name']:  Runoob
dict['Alice']:  键不存在

Process finished with exit code 0
四、添加、修改字典
  1. 添加新的键值对(如果键不存在,就是新增)
dict1={'A':'apple','B':'Book'}
dict1['C']='Cake'
print(dict1)
{'A': 'apple', 'B': 'Book', 'C': 'Cake'}

Process finished with exit code 0
  1. 更新键的值(如果键存在就是更新)
dict1={'A':'apple','B':'Book'}
dict1['A']='Ace'
print(dict1)
{'A': 'Ace', 'B': 'Book'}

Process finished with exit code 0
  1. 使用字典的update方法进行新增与更新
dict1={'A':'apple','B':'Book'}
dict1.update({'C':'Cake','B':'Bike'})
print(dict1)

运行结果如下:

{'A': 'apple', 'B': 'Bike', 'C': 'Cake'}

Process finished with exit code 0
五、字典的删除
  1. 删除字典中的键值对
dict1={'A':'apple','B':'Book','C':'CD'}
del dict1['A'],dict1['B']
print(dict1)
{'C': 'CD'}

Process finished with exit code 0

当删除一个不存在的键时,将会抛出异常,因此可以增加判断,防止异常抛出

dict1={'A':'apple','B':'Book','C':'CD'}
if "A" in dict1:
	del dict1['A']
print(dict1)
{'B': 'Book', 'C': 'CD'}

Process finished with exit code 0
  1. 清空字典
    dict1={} #重新赋值了一个新字典,内存中的地址发生了变化
dict1={'A':'apple','B':'Book','C':'CD'}
print("dict1的原内存地址",id(dict1))
dict1={}  #重新赋值了一个新字典,内存中的地址发生了变化
print("dict1的新内存地址",id(dict1))

运行结果:

dict1的原内存地址 1983772618368
{}
dict1的新内存地址 1983772618432

Process finished with exit code 0

dict1.clear() #清空字典,内存中的地址不变

dict1={'A':'apple','B':'Book','C':'CD'}
print("dict1的原内存地址",id(dict1))
dict1.clear()  #清空字典,内存中的地址不变
print(dict1)
print("dict1的内存地址",id(dict1))

运行结果:

dict1的原内存地址 2707112652480
{}
dict1的内存地址 2707112652480

Process finished with exit code 0
  1. 删除字典
    del dictionary删除整个字典
  2. pop() 方法删除
    语法如下:
    pop(key[,default])
    参数:
    key: 要删除的键值
    default: 如果没有 key,返回 default 值
    返回值:
    返回被删除的值。
dict1={'A':'apple','B':'Book','C':'CD'}
pop_obj = dict1.pop('A')
print(pop_obj)

运行如下:

apple

Process finished with exit code 0

del 语句和 pop() 函数作用相同,pop() 函数有返回值。
6. popitem() 方法
popitem() 方法返回并删除字典中的最后一对键和值。
如果字典已经为空,却调用了此方法,就报出 KeyError 异常。
语法如下:
popitem()
参数:无
返回值:返回一个键值对(key,value)形式。

dict1={'A':'apple','B':'Book','C':'CD'}
pop_obj = dict1.popitem()
print(pop_obj)
print(dict1)

运行结果如下:

('C', 'CD')
{'A': 'apple', 'B': 'Book'}

Process finished with exit code 0
六、遍历字典
  1. 使用字典对象的items()方法获取字典的键值对元组列表
dict1={'A':'apple','B':'Book','C':'CD'}
for item in dict1.items():
    print(item)

运行结果如下:

('A', 'apple')
('B', 'Book')
('C', 'CD')

Process finished with exit code 0
  1. 使用字典对象的items()方法获取具体的键和值
dict1={'A':'apple','B':'Book','C':'CD'}
for k,v in dict1.items():
    print(k,v)

运行结果如下:

A apple
B Book
C CD

Process finished with exit code 0
  1. 遍历字典中的键
dict1={'A':'apple','B':'Book','C':'CD'}
print(dict1.keys())

运行结果如下:

dict_keys(['A', 'B', 'C'])

Process finished with exit code 0
dict1={'A':'apple','B':'Book','C':'CD'}
#dict_keys(['A', 'B', 'C'])称之为类列表,可以遍历,但不能用下标
for one in dict1.keys():
    print(one)
#如果需要用下标,先将类列表转换为列表
# print(list(dict1.keys()))
  1. 遍历字典中的值
dict1={'A':'apple','B':'Book','C':'CD'}
print(dict1.values()) #类列表,可以遍历,但不能用下标
print(list(dict1.values()))

运行结果如下:

dict_values(['apple', 'Book', 'CD'])
['apple', 'Book', 'CD']

Process finished with exit code 0
七、字典推导式

表现形式与列表推导式类型

import random
randomdict = {i:random.randint(10,100) for i in range(1,5)}
print(randomdict)

运行结果如下:

{1: 78, 2: 97, 3: 11, 4: 78}

Process finished with exit code 0
list1=["张三","李四","王五"]
list2=[20,21,22]
dictionary = {i:j for i,j in zip(list1,list2)}
print(dictionary)

运行结果如下:

{'张三': 20, '李四': 21, '王五': 22}

Process finished with exit code 0
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号