python中的字典

 字典

字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 
字典中键的属性:
不可修改 不可重复 注意:元组可以做为key列表不可以
字典中常用的方法:
一、查询
1
2
3
4
5
6
7
8
9
10
11
12
13
stu={'name':'MLing',
     'age':18,
     'add':'北京'
     }
stu['age']=12
print(stu.get('age1'))
print(stu.get('name'))
print(stu['age'])
运行结果:
 
None
MLing
12

  

*取值get更好一点,get不到的话,可以默认返回一个值None

二、修改
1
2
3
4
5
6
7
stu={'name':'MLing',
     'age':18,
     'add':'北京'
     }
stu['ces']=12
print(stu)
运行结果:{'name': 'MLing', 'age': 18, 'add': '北京', 'ces': 12}

  


三、新增
1.setdefault 只添加不修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
d1 = {
'name': 'albert',
'age': 18,
}
d1.setdefault('name', 'Albert')
d1.setdefault('gender', 'male')
print(d1)
 
运行结果:
 
{'name': 'albert', 'age': 18, 'gender': 'male'}
 
print(d1.setdefault('name'))
运行结果:
albert

  

 *如果入参中的key已经存在,不会修改原key的value,除非不存在的时候,才会新增

*使用方法

1)setdefault('X') 仅传key-X时,作为查询,返回key对应的value

2)setdefault('X','Y') 传key-X和value-Y不存在时,作为新增,再原字典中新增一对key和value,传的key-X和value-Y存在时,不新增(注意传参方式)

 2.update 既添加也修改

1
2
3
4
5
6
7
8
9
10
d1 = {
'name': 'albert',
'age': 18,
}
d1.update({'name': 'Albert', 'gender': 'male'}) # 注意传参方式的不同
print(d1)
 
# 输出
 
{'name': 'Albert', 'age': 18, 'gender': 'male'}

  

四、删除

1)pop:通过key删除一个键值对,如果删除的key不存在时,会报错

1
2
3
4
5
6
7
stu={'name':'MLing',
     'age':18,
     'add':'北京'
     }
stu.pop('age')
print(stu)
运行结果:{'name': 'MLing', 'add': '北京'}

  


2)popitem方法类似于list.pop,后者弹出列表最后一个元素。但不同的是,popitem弹出随机的项,因为字典中没有最后的元素,该方法适合一个接一个旳移除并且处理项(不用首先获取键的列表,所以很高效)
1
2
3
4
5
6
7
8
9
10
11
stu={'name':'MLing',
     'age':18,
     'add':'北京'
     }
print(stu)
print(stu.popitem())
print(stu)
运行结果:
{'name': 'MLing', 'age': 18, 'add': '北京'}
('add', '北京')
{'name': 'MLing', 'age': 18}

  

3)del:通过key删除一个键值对,如果删除的key不存在时,会报错
1
2
3
4
5
6
stu={'name':'MLing',
     'age':18,
     'add':'北京'
     }
del stu['age']
print(stu)

  



五、其他方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
stu2=stu.copy()
print(stu.copy())
# print(stu.items())
# stu.clear()
# print(stu.keys())
# print(stu.values())
#
# stu.update('qq','2121')
# print(stu)
 
 
x={'username':'admin','machines':['foo','bar','baz']}
y=x.copy()
y['username']='mlh'
y['machines'].remove('bar')
print(y)
print(x)

  












posted @   MLing  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-04-23 idea中看不到项目结构该怎么办
2018-04-23 IntelliJ IDEA2018.1、2017.3激活
点击右上角即可分享
微信分享提示