暑假Python基础整理 -- 字典和集合

字典(dictionary)


字典(dictionary)是无序的、可变的,其内容是“键值对”的形式存储的,其中键是唯一的,而值可以有多个。字典的主要特点如下:

  • 字典是通过键而不是通过索引来读取的
  • 字典是任意对象的无序集合,各项随机排序
  • 字典是可变的,并且可以任意嵌套
  • 字典中的键必须唯一
  • 字典中的键必须不可变
字典的创建和删除

字典中的键和值是通过:进行分割,每相邻两个键值对之间都是以逗号分割,将所有元素放在一个大括号{}中,其语法格式如下:

dic = {'key_1':'value_1','key_2':'value_2',...,'key_n':'value_n'}

创建空字典:同列表和元组一样,两种语法结构如下所示:

dict_1 = {}
dict_2 = dict()

通过映射函数创建字典:内置的zip(list1,list2)函数可以将列表或元组对应的位置元素组合为元组,并返回包含这些内容的zip对象,该zip对象可以通过list()tuple()dict()转换为需要的类型,list1在字典中属于键,list2在字典中属于值,语法格式如下:

dictname = dict(zip(list1,list2))

通过给定的“键值对”创建字典key必须唯一且不可变,该参数可以是字符串、数字或元组;value表示值,是任意的。示例如下:

dic = {"name":"Couioly","age":19,"address":"TianJin"}
print(dic)

Python中还可以使用dict对象的fromkeys(lis)方法创建键为lis列表而值为None的字典,语法格式如下:

lis = ["Wang","Li","Xiao","Du"]
dictname = dict.fromkeys(lis)
print(dictname)
"""输出结果为:{'Wang': None, 'Li': None, 'Xiao': None, 'Du': None}"""

删除字典:同列表或元组一样,使用del关键字删除字典对象;若要删除字典的所有元素,则可以使用字典的clear()方法。

'''删除字典'''
del dictname
'''清空字典'''
dictname.clear()
访问字典

若要查看字典的所有内容,则可以使用print()函数。然而,对于字典而言,我们经常用到的是通过指定键得到相应的结果,语法如下:

print(dictname[key]) # 将会输出key对应的value

除此之外,获取字典元素Python推荐使用的方法是get()方法,default是可选项,用于指定的键不存在时,返回的一个默认值,若省略,则默认为None。其语法格式如下:

# 语法: dictname.get(key[,default])
dictname = {'key1': 'value1','key2': 'value2','key3': 'value3','key4': 'value4'}
print(dictname.get('key3','未找到'))
print(dictname.get('key5','未找到'))
遍历字典

使用字典对象的items()方法可以获取字典的“键值对”元组列表,可以通过for循环遍历该元组列表,如下示例:

dictname = {'key1': 'value1','key2': 'value2','key3': 'value3','key4': 'value4'}  
  
for i in dictname.items():  
    print(i)

如果想要获取具体的每个键和值,则可以按照下述方式获取:

dictname = {'key1': 'value1','key2': 'value2','key3': 'value3','key4': 'value4'}  
  
for key,value in dictname.items():  
    print(key,value)

Python中还提供了values()key()方法,用于返回字典的“值”和“键”,它们的使用方法与items()方法相似,也需要通过for循环遍历该字典列表

添加、修改和删除字典元素

添加或修改:字典中添加和修改键值对的语法相同,都是字典名[键]=值这种形式,语法格式如下:

dictname[key] = value

修改元素的原理:如果新添加的“键”与已存在的“键”重复,那么将使用新的“值”替换掉原来该“键”的值,这也相当于修改字典的元素。

删除字典元素:除了直接使用del关键字进行删除之外,Python还提供了pop()popitem()两种方法

dic = {'key1': 'value1','key2': 'value2','key3': 'value3','key4': 'value4'}
del dic['key3']  # del关键字删除
dic.pop('key2',0)  # pop方法删除指定元素
dic.popitem()     # popitem方法删除最后一个插入的键值对

维度pop(key,default)方法popitem()方法
参数必须指定参数,可选默认值无参数
返回值被删除键对应的value被删除的键值对(key,value)
操作对象指定的键最后插入的键(3.7+)/随机(3.7-)
适用场景已知要删除的键按顺序逐个删除元素

若对pop()方法的默认值不指定,则当字典中不存在key的键值对时将会抛出异常。

字典推导式

使用字典推导式可以快速生成一个字典,它的形式与列表推导式相似。语法格式如下:

根据键列表值列表结合zip()函数快速生成字典

dict_1 = {i:j for i,j in zip(key_list,value_list)}

根据旧字典按照需求生成新字典

new_dict = {i:j for i,j in old_dict.items()}

集合(set)


集合的所有元素都放在一对大括号“{}”内,两个相邻元素间使用,间隔。Python集合分为两种:

  • 可变集合set
  • 不可变集合frozenset
创建集合

直接使用{}创建集合,即将集合赋值给变量,以实现集合的创建。语法格式如下:

setname = {element_1,element_2,element_3,...,element_n}

在创建集合时,若输入了重复的元素,Python会自动只保留一个元素

使用set()函数将列表、元组等其他可迭代对象转换为集合。语法格式如下:

setname = set(iteration)
# iteration 表示可迭代对象,可以是列表、元组、range对象、字符串等

创建空集合:只能使用set()函数创建空集合,如:setname = set()

添加和删除元素

向集合中添加元素:使用add()方法,语法如下:

setname.add(element)
"""此处的element只能使用字符串、数字以及布尔类型的True或者False,不能使用可迭代对象"""

从集合中删除元素:使用del关键字可以删除整个集合,也可以使用集合的pop()方法或者remove()方法删除一个元素,还可以使用clear()方法清空集合。

set_name = {'1','2','3','4','5','6','7'}
set_name.pop()
set_name.remove(element)
set_name.clear()
del set_name

注意区分集合的pop()语法和列表的pop()语法的区别,列表的pop()函数必须指定参数,而集合的pop()不能指定参数。进行删除操作时注意处理异常。

文章地址 : 暑假Python基础整理 – 字典和集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值