前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >6-5、Python 数据类型-字典、集合

6-5、Python 数据类型-字典、集合

原创
作者头像
度假的小鱼
修改于 2023-11-10 08:26:41
修改于 2023-11-10 08:26:41
18700
代码可运行
举报
文章被收录于专栏:PythonPython
运行总次数:0
代码可运行

字典

字典介绍

Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!

字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串。列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的, 但值则不必。

字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,例如:d = {key1 : value1, key2 : value2 }

字典的创建

dict()函数是Python内置的创建字典的方法。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> test = {}
>>> type(test)
<class 'dict'>
>>> a = {'a':'200','b':100}
>>> a
{'a': '200', 'b': 100}
>>> dict([('a',1),('b',2)])
{'a': 1, 'b': 2}
>>> dict(a=1,b=2,name='jack')
{'a': 1, 'b': 2, 'name': 'jack'}
>>> b = {1:100,2:200}   # 常用的 
>>> type(b)
<class 'dict'>
>>> 

访问字典

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与list类似,字典采用把相应的键放入方括号内获取对应值的方式取值。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> a = dict(a=1,b=2,name='jack')
>>> a
{'a': 1, 'b': 2, 'name': 'jack'}
>>> a['a']
1
>>> a['name']
'jack'
>>> b = {1:100,2:200}
>>> b[1]
100
>>> 

增加和修改

增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一-个

值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> b = {1:100,2:200}
>>> b
{1: 100, 2: 200}
>>> b[3]=300           # 添加元素 3:300,键为3,值为300
>>> b
{1: 100, 2: 200, 3: 300}
>>> b['1']=500         # 添加元素
>>> b
{1: 100, 2: 200, 3: 300, '1': 500}
>>> b[1]=600  # 修改元素
>>> b
{1: 600, 2: 200, 3: 300, '1': 500} 
>>>  

删除字典元素、清空字典和删除字典

使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> b ={1: 600, 2: 200, 3: 300, '1': 500}
>>> b
{1: 600, 2: 200, 3: 300, '1': 500}
>>> del b[1]            # 删除字典元素
>>> b
{2: 200, 3: 300, '1': 500}
>>> b.pop(3)
300
>>> b
{2: 200, '1': 500}
>>> b.clear()   # 清空字典
>>> b
{}
>>> del b   # 删除字典
>>> b
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    b
NameError: name 'b' is not defined
>>> 

字典的方法

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

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

keys() 以列表返回字典所有的键

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> a = {'name':'jack','age':20,'addres':'beijin'}
>>> a
{'name': 'jack', 'age': 20, 'addres': 'beijin'}
>>> a.get('name')  # 根据键获取值
'jack'
>>> 
>>> a.items() # 返回键-值元组的列表
dict_items([('name', 'jack'), ('age', 20), ('addres', 'beijin')])
>>> 
>>> a.keys()
dict_keys(['name', 'age', 'addres'])
>>> a.values()
dict_values(['jack', 20, 'beijin'])
>>> 

遍历字典

遍历字典获得的键值对是随机无序的

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> a
{'name': 'jack', 'age': 20, 'addres': 'beijin'}
>>> for key in a:
	print(key)
	
name
age
addres
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> a
{'name': 'jack', 'age': 20, 'addres': 'beijin'}
>>> for i in a.items():
	print(i)
	
('name', 'jack')
('age', 20)
('addres', 'beijin')

>>> for i in a.items():
	print(i[0],i[1])

name jack
age 20
addres beijin
>>> 
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> for key,value in a.items():
	print(key,value)
	
name jack
age 20
addres beijin
>>> 

集合

集合介绍

set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框

定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用set()而不是{},因为后者

创建的是一个空字典

集合数据类型的核心在于自动去重。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> s = set([1,2,3,4,5])
>>> s
{1, 2, 3, 4, 5}
>>> e = set('hello world')
>>> e
{'h', ' ', 'e', 'o', 'r', 'd', 'l', 'w'}
>>> 
>>> f = set([1,2,3,1,2,5,1])
>>> f
{1, 2, 3, 5}   # 不重复元素的集
>>> 

添加元素

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> s = set([1,2,3,4,5])
>>> s
{1, 2, 3, 4, 5}
>>> s.add(6)  # 添加元素 
>>> s
{1, 2, 3, 4, 5, 6}
>>> s.add(6)
>>> s
{1, 2, 3, 4, 5, 6}
>>> 

集合更新

可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> s
{1, 2, 3, 4, 5, 6}
>>> s.update('jack')
>>> s
{1, 2, 3, 4, 5, 6, 'j', 'c', 'a', 'k'}
>>> 

删除元素

通过remove(key)方法删除指定元素,或者使用pop()方法。注意,集合的pop方法无法设置参数,删

除指定的元素

需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值

对获取。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> s.remove('c')
>>> s
{1, 2, 3, 4, 5, 6, 'j', 'a', 'k'}
>>> s.pop()
1
>>> s
{2, 3, 4, 5, 6, 'j', 'a', 'k'}
>>>

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字典
    • 字典介绍
    • 字典的创建
    • 访问字典
    • 增加和修改
    • 删除字典元素、清空字典和删除字典
    • 字典的方法
    • 遍历字典
  • 集合
    • 集合介绍
    • 添加元素
    • 集合更新
    • 删除元素
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档