- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
字典:储存一种键值对的结构。5 [4 t9 n9 g% f8 @8 R3 u: F
7 x) p$ z7 o: q3 N
键值对:计算机的非常非常的重要的一种概念。
6 T* O2 W' M& l2 y3 x3 T U @' H$ l% }( p+ x3 _3 z# E9 w* `/ i
键(key)值(value) 根据键key可以快速找到value(本质其实是一种映射的关系)
6 A' W; A% E5 d6 ~7 _" K2 X( e3 ^
在Python的字典中可以同时包含很多键值对,但要求这些键不能重复。键值对形式{key:value , key:value…}字典中的key和value的类型不一定都一样,字典对于key是什么类型有约束,但对于value是什么类型无约束.一般没写一行,因为不直观,一般写成这样多行更直观,最后一个键值对的逗号可有可无。 ; l ?/ C- B) t& s" T
- c' G3 n+ k! g2 }) F' \% C在字典中查找有两种方式:1.可以用in来判断某个key是否在字典中存在 2.使用这个[]来根据key来获取value& h- W& r6 L! H- k! j" x
j+ k0 M- L# y# A对于字典来说使用in或者[]来获取value都是非常高效的.
: ^8 y5 c. Q( J4 J8 v* F- B* P
% @, q. c+ T8 U6 O对于列表来说用in比较低效因为要全部遍历,而使用[]是比较高效的.
( A$ }0 Z+ N) `5 a: b
( N9 E, A. ^2 f) W在字典中新增键值对的方式:在字典中新增元素用[]来进行,例:对象[key]=value. 如果key不存在往里写,相当于新增键值对,如果key存在往里写,相当于根据key修改value.
5 {3 o3 {% X/ f/ c9 j2 x7 y2 @: _) N% T* A+ v9 {1 d
删除:使用pop方法,根据key来删除键值对,对字典的各种操作都是围绕key来进行的.
' o+ W3 s4 [5 g. O7 n' G5 V
- K0 z. U( e( f. o5 H# z2 k6 J, p字典被设计出的初衷不是为了遍历,而是为了增删查改,时间复杂度O(1),增删查改都是固定时间,不会因为元素多了而操作就慢了。6 Z% l5 w. U7 D7 B$ R2 |
. o: j6 u$ O0 n4 C- }7 N0 y$ |字典是哈希表进行增删查改操作的效率非常高,而字典的遍历则效率差一些。
1 H+ N- w# \: C: \2 A/ w
$ s2 H& I7 @( ~5 ? X& p1 }遍历:1.用for循环,来遍历字典.在Python中能够保证遍历的顺序和插入的顺序保持一致2 N" \* }: B' T8 s5 b4 O# J
8 D' e6 W1 M- X) K/ H2.使用keys()、values()、items()(分别表示所有的key,所有的value,所有的键值对)
* G+ T1 K, _9 e* w
/ e3 ^( T0 {/ Ekey类型的约束:不是所有类型都可以作为字典的key,因为字典本质为哈希表而表中key要求可哈希的,也就是可以计算出一个哈希值,刚好Python有一个内联函数哈希hash可以计算函数哈希值,注意字典dict和列表list是不可哈希的.
+ S8 b4 `5 \- B G5 N6 z
2 [' q0 Z" X3 e0 M: V$ [+ s! s) p1 o字典和列表、元组是Python当中非常常见的内置类型,相比于int string float,它们内部可以包含很多元素,所以被称之为"容器和集合类"( l2 m: \0 x* D* {
————————————————7 q; `) k: d, I- q1 N+ D
/ n* u) \9 ^8 a 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
" s- y) g5 T7 o7 J4 f" ]7 Q7 A6 y+ e
原文链接:https://blog.csdn.net/2301_81874719/article/details/138212331' K# L: i- }1 k2 I2 @* `6 ^
$ @0 T; n7 T5 C3 }8 l9 K- y
8 ]% ^( Y$ G1 f% R8 J |
zan
|