数学建模社区-数学中国

标题: python字典方法大全 [打印本页]

作者: 2744557306    时间: 2024-4-26 16:23
标题: python字典方法大全
字典:储存一种键值对的结构。
) t- _0 F7 E1 l1 v5 q; a$ T# X
2 {; G; ]' g; P. W9 e. u) o0 w键值对:计算机的非常非常的重要的一种概念。
* [! e7 A4 U% n% W4 ~6 B- o( D. ]; G' }2 W  G! J% o
键(key)值(value) 根据键key可以快速找到value(本质其实是一种映射的关系)
& }# {9 m& [# d! x2 W" ?# }$ t: S5 P" ?8 U, q: I) N
在Python的字典中可以同时包含很多键值对,但要求这些键不能重复。键值对形式{key:value ,  key:value…}字典中的key和value的类型不一定都一样,字典对于key是什么类型有约束,但对于value是什么类型无约束.一般没写一行,因为不直观,一般写成这样多行更直观,最后一个键值对的逗号可有可无。 6 V$ W$ r3 D6 g6 F1 [& o7 ]

5 w( v* |+ w6 ?2 ~" O在字典中查找有两种方式:1.可以用in来判断某个key是否在字典中存在  2.使用这个[]来根据key来获取value, s( w* Z% `, g4 E0 o

$ ~: N% x8 W7 k5 O4 M" e9 C对于字典来说使用in或者[]来获取value都是非常高效的.
3 d5 ]7 T' m- R2 _# B
! S+ C" H4 B* o1 y+ ^+ h3 K5 q! _对于列表来说用in比较低效因为要全部遍历,而使用[]是比较高效的.
9 f" T0 Q# c. s' _  L+ e
9 Q* r1 s4 n" @1 S4 k' [在字典中新增键值对的方式:在字典中新增元素用[]来进行,例:对象[key]=value. 如果key不存在往里写,相当于新增键值对,如果key存在往里写,相当于根据key修改value.
% F2 V7 W$ m3 d/ o& O
; \9 C% k9 [& J2 q8 ?4 G删除:使用pop方法,根据key来删除键值对,对字典的各种操作都是围绕key来进行的.
0 ]0 r% j, t7 F# p' [' d
$ \9 i* s, a7 L( O4 D7 x字典被设计出的初衷不是为了遍历,而是为了增删查改,时间复杂度O(1),增删查改都是固定时间,不会因为元素多了而操作就慢了。
% w4 m6 R; D/ i! H$ O& U/ z
7 u: `" Y. [1 Z7 t字典是哈希表进行增删查改操作的效率非常高,而字典的遍历则效率差一些。
3 {8 J6 J4 V# E4 o
; e$ i0 A# z- C. {4 c/ m遍历:1.用for循环,来遍历字典.在Python中能够保证遍历的顺序和插入的顺序保持一致0 Y+ b4 C# n8 H- p6 ~8 k

+ C# k% o6 a$ F. R: E6 L2.使用keys()、values()、items()(分别表示所有的key,所有的value,所有的键值对)
  Q5 M) ~2 N- D" H8 L8 T: m# O" I# L# Q# X) J
key类型的约束:不是所有类型都可以作为字典的key,因为字典本质为哈希表而表中key要求可哈希的,也就是可以计算出一个哈希值,刚好Python有一个内联函数哈希hash可以计算函数哈希值,注意字典dict和列表list是不可哈希的.$ @7 A# n2 V3 W. @

) T9 h$ {( G! ?字典和列表、元组是Python当中非常常见的内置类型,相比于int string float,它们内部可以包含很多元素,所以被称之为"容器和集合类"
0 D  k6 H) K3 D  q1 R% l————————————————6 I9 ?' f$ _3 |7 f. i% m2 M: v

. Q: {5 ^, N. q# G  e                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
/ S! h( c8 N3 D
$ ^  R* G  @' k) {6 P0 V8 w原文链接:https://blog.csdn.net/2301_81874719/article/details/138212331, O% V8 W# H* d: s
' W8 h% I# D# V: o8 U/ g

' A' a) R' j. T3 `5 N8 D% o: l




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5