No.6、字典与集合

Python的起步之路

No.6、字典与集合
(一)、字典

  • 在Python中,字典也如现实生活中的字典一样,使用词-语义进行数据的构建,其中词对应键(key),词义对应值(value),即键与值构成某种关系,通常将两者称为键值对,这样通过键可以快速找到对应的值。
  • 字典是由元素构成的,其中每个元素都是一个键值对,具体示例如下:
student={'name':'小千''id':'20190101'}
  • 示例中,字典由2个元素构成,元素之间用逗号隔开,整体用大括号括起来。每个元素是一个键值对,键与值之间用冒号隔开,如’name’:‘xiaoqian’,'name’是键,'xiaoqian’是值。

字典的特征:

  1. 字典中的元素是以键值对的形式出现的。
  2. 键不能重复,而值可以重复。
  3. 键是不可变数据类型,而值可以是任意数据类型。

字典的创建:

dist1={}//创建空字典
dist2={'name':'小千''id':'20190101'}
items=[('name','小千')('score','98')]//列表
dist3=dict(items)
dist4=dict(name='小千',score=98)

字典的常用操作:

  1. 计算元素的个数
    字典中元素个数可以通过len()函数来获取
dict = {'qfendu':'千峰教育','coding':'扣丁学堂'}

运行结果:
在这里插入图片描述

  1. 访问元素值
    列表与元组是通过下标索引访问元素值,而字典是通过元素的键来访问值。
dict = {'qfendu':'千峰教育','coding':'扣丁学堂'}
print(dict['qfendu'])
print(dict['coding'])

有时不确定字典中是否存在某个键而又想访问该键对应的值,则可以通过get()函数实现。

dict = {'qfendu':'千峰教育','coding':'扣丁学堂'}
name1 = dict.get('goodprogermmer')//不存在该键时,返回None,而不是报错
print(name1)
name2 = dict.get('qfendu')//存在该键时,返回对应的值
print(name1)

运行结果:在这里插入图片描述

  1. 修改元素值
    字典中除了通过键访问值外,还可以通过键修改值
std={'name':'小千','score':100}
print(std)
std['name']='小锋'
std['score']=99
print(std)

运行结果:
在这里插入图片描述

  1. 添加元素
    通过键修改值时,如果键不存在,则会在字典中添加该键值对。
std={'name':'小千','score':100}
std['name']='小锋'
std['age']=18
print(std)

此外,还可以通过update()函数修改某键对应的值或添加元素:

std={'name':'小千','score':100}
new={'name':'小锋'}
std.update(new)
print(std)
add={'age':'18'}
std.update(add)
print(std)

运行结果:
在这里插入图片描述

  1. 删除元素
    删除字典中的元素可以通过“del 字典名[键]”实现。
std={'name':'小千','score':100}
del.std['score']
print(std)

如果想删除字典中所有元素,则可以使用clear()实现:

std={'name':'小千','score':100}
std.clear()
print(std)

注意使用“del 字典名”可以删除字典,删除后,字典就完全不存在。

  1. 复制字典
    有时需要将字典复制一份以便用于其他操作,这样原字典数据不受影响,这时可以通过函数copy()函数来实现:
std={'name':'小千','score':100}
s = std.copy()
del.s['score']
print(s)
print(std)

运行结果:
在这里插入图片描述

  1. 成员运算
    字典中可以使用成员运算符(in、not in)来判断某键是否在字典中:
std={'name':'小千','score':100}
print('name' in std)
print('score' not in std)

运行结果:
在这里插入图片描述

  1. 设置默认键值对
    有时需要为字典中某个键设置一个默认值,则可以使用setdefault()函数,如例所示。
std={'name':'小千','score':100}
name = std.setdefault('school','千锋教育')
print(name, std)
name = std.setdefault('school','扣丁学堂')
print(name, std)
  1. 获取字典中的所有键
    keys()函数可以获取字典中所有元素的键,如例所示。
std={'name':'小千','score':100}
print(std.keys())
for key in std.keys():
	print(key)

运行结果:
在这里插入图片描述

  1. 获取字典中的所有值
    values()函数可以获取字典中所有元素键所对应的值,如例所示。
std={'name':'小千','score':100}
print(std.values())
for value in std.values():
	print(value)

运行结果:
在这里插入图片描述

  1. 获取字典中所有的键值对
    items()函数可以获取字典中所有的键值对,如例所示。
std={'name':'小千','score':100}
print(std.items())
for item in std.items():
	print(item)

此外,items()函数与for循环结合可以遍历字典中的键值对,如例所示。

std={'name':'小千','score':100}
for key,value in std.items():
	print('key = %s,value = %s'%(key,value))

运行结果:
在这里插入图片描述

  1. 随机删除元素
    popitem()函数可以随机返回并删除一个元素,如例所示。
std={'name':'小千','score':100'school':'千锋教育'}
item = std.popitem()
print(item,std)

此外,pop()函数可以根据指定的键删除元素,如例所示。

std={'name':'小千','score':100'school':'千锋教育'}
item = std.pop('score')
print(item,std)

运行结果:
在这里插入图片描述
(二)、集合

  • 集合是由一组无序排列且不重复的元素组成。
set1 = {1,2,'a'}
  • 集合使用大括号表示,元素类型可以是数字类型、字符串、元组,但不可以是列表、字典,具体示例如下:
    在这里插入图片描述

  • 使用大括号创建的集合属于可变集合,即可以添加或删除元素。此外,还存在一种不可变集合,即不允许添加或删除元素。

  • 接下来演示创建这两种集合的方法,如例所示。
    在这里插入图片描述

  • 集合的一个重要用途是将一些数据结构中的重复元素去除,如例所示。
    在这里插入图片描述
    运行结果如图所示。
    在这里插入图片描述

集合的常用操作:

  1. 添加元素
    集合中添加元素可以使用add()和update()函数,如例所示。
    在这里插入图片描述
    运行结果如图所示:
    在这里插入图片描述

  2. 删除元素
    集合中删除元素可以使用remove()和discard()函数
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  3. 集合运算
    集合可以参与多种运算
    在这里插入图片描述在这里插入图片描述
    除了上述运算符外,还可以通过union()、intersection()与difference()函数实现集合的并集、交集与差集:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  4. 集合遍历
    集合可以通过for循环遍历其中的元素

set1 = {1,2,3,4}
for num in set1:
	print(num,end = ' ')

运行结果:
在这里插入图片描述

Good bye!

PS:图片素材来源于网络。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值