当前位置:   article > 正文

Python-VBA函数之旅-dict()函数_vba print dict

vba print dict

目录

1、dict()函数:

1-1、Python:

1-2、VBA:

2、dict()与dict差异对比:

3、相关文章:

个人主页:非风V非雨-CSDN博客


        dict()函数在 Python 中用于创建一个新的字典对象。字典是一种无序的键值对集合,它允许我们根据键来存储和检索值。常见的应用场景有:

1、动态数据存储:字典非常适合存储动态数据,这些数据可能在运行时才会确定其键和值。例如,我们可以根据用户的输入或外部数据源动态地创建和更新字典。

2、配置文件和参数设置:许多程序需要配置文件来指定不同的设置或参数。字典可以用来存储这些配置项和它们的值,使得程序能够灵活地读取和修改配置。

3、统计数据:字典非常适合用来统计和记录数据,例如,统计文本中单词出现的频率。

4、映射和转换:字典可以用来实现键和值之间的映射关系,这在数据转换和替换时非常有用。

5、解析JSON数据:当从外部源(如API)接收JSON数据时,json.loads()函数通常会将JSON字符串解析为Python字典,从而方便后续处理。

6、缓存和状态管理:字典可以用作临时存储数据的缓存,或者在程序执行期间跟踪状态信息。

7、构建复杂数据结构:字典可以包含其他字典、列表或其他复杂数据类型,从而构建出嵌套的数据结构。

        这些只是dict()函数的一些常见应用场景。实际上,由于字典的灵活性和便利性,它在 Python 编程中几乎无处不在,是构建复杂程序和数据结构的重要工具。

1、dict()函数:
1-1、Python:
  1. # 1.函数:dict()
  2. # 2.功能:用于创建一个新的字典或根据传入的参数创建一个字典对象
  3. # 3.语法:
  4. # 3-1、dict(**kwarg)
  5. # 3-2、dict(mapping, **kwarg)
  6. # 3-3、dict(iterable, **kwarg)
  7. # 4.参数:
  8. # 4-1、`**kwarg`:一到多个关键字参数,这些关键字参数及其对应的值将被添加到字典中
  9. # 4-2、`mapping`:另一个字典,其键值对将被添加到新字典中,如zip()函数
  10. # 4-3、`iterable`:一个可迭代对象,其中包含可迭代的键值对(通常是包含两个元素的元组或其他可迭代对象)
  11. # 5.返回值:一个字典,如果不传入任何参数,则返回空字典
  12. # 6.说明:
  13. # 6-1、使用dict()函数通过给定的关键字参数创建字典时,name键名必须都是Python中的标识符,否则会提示SyntaxError错误,如下:
  14. # SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
  15. # print(dict(1='a',2='b'))
  16. # 7.示例:
  17. # 应用1:字典的增、删、改、查操作
  18. # 增(添加键值对)
  19. # 可以通过直接赋值的方式向字典中添加新的键值对:
  20. my_dict = {}
  21. my_dict['key1'] = 'value1' # 添加键值对 'key1': 'value1'
  22. # 删(删除键值对或字典)
  23. #可以使用 `del` 语句或 `pop()` 方法来删除字典中的键值对,也可以使用 `clear()` 方法来清空整个字典:
  24. my_dict = {'key1': 'value1', 'key2': 'value2'}
  25. # 使用del语句删除键值对
  26. del my_dict['key1']
  27. # 使用pop()方法删除键值对,并返回被删除的值
  28. removed_value = my_dict.pop('key2')
  29. # 清空字典
  30. my_dict.clear()
  31. # 改(修改键值对)
  32. my_dict = {'key1': 'value1'}
  33. my_dict['key1'] = 'new_value1' # 修改 'key1' 的值为 'new_value1'
  34. #查(查询键值对)
  35. # 可以通过键来查询字典中的值:
  36. my_dict = {'key1': 'value1', 'key2': 'value2'}
  37. # 使用键来获取值
  38. value = my_dict['key1'] # 如果键不存在,会抛出KeyError异常
  39. # 使用get()方法来安全地获取值,如果键不存在则返回None或指定的默认值
  40. value = my_dict.get('key1') # 如果键存在,返回对应的值;否则返回None
  41. value = my_dict.get('key3', 'default_value') # 如果键不存在,返回'default_value'
  42. # 通过 `in` 关键字来检查字典中是否包含某个键:
  43. key_exists = 'key1' in my_dict # 如果'key1'在字典中,返回True;否则返回False
  44. # 使用 `keys()`, `values()`, 和 `items()` 方法来获取字典的键、值或键值对的列表:
  45. keys = my_dict.keys() # 获取键的列表
  46. values = my_dict.values() # 获取值的列表
  47. items = my_dict.items() # 获取键值对的列表
  48. # 应用2:动态数据存储
  49. user_data = dict()
  50. print(user_data)
  51. user_data['name'] = 'Myelsa'
  52. user_data['age'] = 18
  53. print(user_data)
  54. # {}
  55. # {'name': 'Myelsa', 'age': 18}
  56. # 应用3:配置文件和参数设置
  57. config = dict(
  58. database_url='postgresql://user:password@localhost:5432/mydb',
  59. debug_mode=True
  60. )
  61. print(config)
  62. # {'database_url': 'postgresql://user:password@localhost:5432/mydb', 'debug_mode': True}
  63. # 应用4:统计数据
  64. word_counts = dict()
  65. text = "Myelsa is a sunny and handsome boy. Myelsa is wonderful!"
  66. for word in text.split():
  67. if word in word_counts:
  68. word_counts[word] += 1
  69. else:
  70. word_counts[word] = 1
  71. print(word_counts)
  72. # {'Myelsa': 2, 'is': 2, 'a': 1, 'sunny': 1, 'and': 1, 'handsome': 1, 'boy.': 1, 'wonderful!': 1}
  73. # 应用5:映射和转换
  74. abbreviations = dict(
  75. BTW='By the way',
  76. LOL='Laugh out loud'
  77. )
  78. text = "BTW, this is a LOL example."
  79. for abbr, expansion in abbreviations.items():
  80. text = text.replace(abbr, expansion)
  81. print(abbreviations)
  82. # {'BTW': 'By the way', 'LOL': 'Laugh out loud'}
  83. # 应用6:解析JSON数据
  84. import json
  85. json_data = '{"name": "Myelsa", "age": 18}'
  86. data_dict = json.loads(json_data)
  87. print(data_dict['name'])
  88. # Myelsa
  89. # 应用7:缓存和状态管理
  90. cache = dict()
  91. def compute_expensive_result(key):
  92. if key not in cache:
  93. cache[key] = some_expensive_computation(key)
  94. return cache[key]
  95. # 应用8:构建复杂数据结构
  96. users = {
  97. 'Myelsa': {
  98. 'age': 18,
  99. 'email': 'alice@example.com'
  100. },
  101. 'Jimmy': {
  102. 'age': 15,
  103. 'email': 'bob@example.com'
  104. }
  105. }
  106. print(users)
  107. # {'Myelsa': {'age': 18, 'email': 'alice@example.com'}, 'Jimmy': {'age': 15, 'email': 'bob@example.com'}}
1-2、VBA
  1. Rem 模拟Python中dict()函数应用1:字典的增、删、改、查操作
  2. '你需要在VBA编辑器中添加对 Microsoft Scripting Runtime 的引用。你可以通过以下步骤来添加:
  3. '1、在VBA编辑器中,点击 "工具" -> "引用"
  4. '2、在弹出的 "引用 - VBAProject" 对话框中,滚动并勾选 "Microsoft Scripting Runtime"
  5. '3、点击 "确定"
  6. Rem 增(添加键值对)
  7. Sub TestRun_1()
  8. Dim my_dict As Object
  9. Set my_dict = CreateObject("Scripting.Dictionary")
  10. my_dict.add "key1", "value1"
  11. ' 打印键值对以验证
  12. Debug.Print my_dict.item("key1") ' 输出: value1
  13. End Sub
  14. 'value1
  15. Rem 删(删除键值对或字典)
  16. Sub TestRun_2()
  17. Dim my_dict As Object
  18. Set my_dict = CreateObject("Scripting.Dictionary")
  19. ' 添加键值对
  20. my_dict.add "key1", "value1"
  21. my_dict.add "key2", "value2"
  22. ' 打印字典的内容以验证
  23. Debug.Print "初始字典内容:"
  24. Debug.Print "key1 -> " & my_dict.item("key1")
  25. Debug.Print "key2 -> " & my_dict.item("key2")
  26. ' 使用Remove方法删除键值对
  27. my_dict.Remove ("key1")
  28. Debug.Print "删除key1后的字典内容:"
  29. If Not my_dict.Exists("key1") Then
  30. Debug.Print "key1已删除"
  31. End If
  32. ' 使用Item方法和Remove方法结合来模拟pop()方法,并返回被删除的值
  33. Dim removed_value As Variant
  34. If my_dict.Exists("key2") Then
  35. removed_value = my_dict.item("key2")
  36. my_dict.Remove ("key2")
  37. Debug.Print "使用pop()方法模拟删除key2,返回的值是:" & removed_value
  38. Else
  39. Debug.Print "key2不存在,无法pop"
  40. End If
  41. ' 清空字典
  42. my_dict.RemoveAll
  43. Debug.Print "清空字典后的内容:"
  44. If my_dict.count = 0 Then
  45. Debug.Print "字典已清空"
  46. End If
  47. End Sub
  48. '初始字典内容:
  49. 'key1 -> value1
  50. 'key2 -> value2
  51. '删除key1后的字典内容:
  52. 'key1已删除
  53. '使用pop()方法模拟删除key2,返回的值是:value2
  54. '清空字典后的内容:
  55. '字典已清空
  56. Rem 改(修改键值对)
  57. Sub TestRun_3()
  58. Dim my_dict As Object
  59. Set my_dict = CreateObject("Scripting.Dictionary")
  60. ' 添加键值对
  61. my_dict.add "key1", "value1"
  62. ' 修改 'key1' 的值为 'new_value1'
  63. my_dict("key1") = "new_value1"
  64. ' 打印修改后的值以验证
  65. Debug.Print "修改后的 'key1' 的值: " & my_dict.item("key1")
  66. End Sub
  67. '修改后的 'key1' 的值: new_value1
  68. Rem 查(查询键值对)
  69. Sub TestRun_4()
  70. Dim my_dict As Object
  71. Set my_dict = CreateObject("Scripting.Dictionary")
  72. ' 添加键值对
  73. my_dict.add "key1", "value1"
  74. my_dict.add "key2", "value2"
  75. ' 使用键来获取值
  76. Dim val As Variant
  77. On Error Resume Next ' 忽略因键不存在而可能产生的错误
  78. val = my_dict.item("key1")
  79. If Err.number <> 0 Then
  80. Debug.Print "KeyError: 键 'key1' 不存在"
  81. Err.Clear ' 清除错误
  82. Else
  83. Debug.Print "键 'key1' 的值: " & val
  84. End If
  85. On Error GoTo 0 ' 恢复正常的错误处理
  86. ' 使用类似get()的方法安全地获取值
  87. Dim val_1 As Variant
  88. val_1 = GetValueSafe(my_dict, "key1")
  89. Debug.Print "安全获取 'key1' 的值: " & IIf(IsMissing(val_1), "None", val_1)
  90. val_1 = GetValueSafe(my_dict, "key3", "default_value")
  91. Debug.Print "安全获取 'key3' 的值(带默认值): " & val_1
  92. ' 通过 `Exists` 方法来检查字典中是否包含某个键
  93. Dim key_exists As Boolean
  94. key_exists = my_dict.Exists("key1")
  95. Debug.Print "'key1' 是否存在于字典中: " & CStr(key_exists)
  96. ' 使用 `Keys()`, `Items()` 方法来获取字典的键和键值对的列表
  97. Dim keys As Variant
  98. Dim items As Variant
  99. Dim i As Integer
  100. keys = my_dict.keys()
  101. Debug.Print "键的列表: "
  102. For i = LBound(keys) To UBound(keys)
  103. Debug.Print keys(i)
  104. Next i
  105. items = my_dict.items()
  106. Debug.Print "键值对的列表: "
  107. For i = LBound(items) To UBound(items)
  108. Debug.Print "键: " & my_dict.keys()(i) & ", 值: " & items(i)
  109. Next i
  110. ' 获取值的列表
  111. Dim values As Variant
  112. ReDim values(UBound(items)) ' 预先分配数组大小
  113. For i = LBound(items) To UBound(items)
  114. values(i) = items(i)
  115. Next i
  116. Debug.Print "值的列表: "
  117. For i = LBound(values) To UBound(values)
  118. Debug.Print values(i)
  119. Next i
  120. End Sub
  121. Function GetValueSafe(dict As Object, key As Variant, Optional defaultValue As Variant = Empty) As Variant
  122. If dict.Exists(key) Then
  123. GetValueSafe = dict.item(key)
  124. Else
  125. GetValueSafe = defaultValue
  126. End If
  127. End Function
  128. '键 'key1' 的值: value1
  129. '安全获取 'key1' 的值: value1
  130. '安全获取 'key3' 的值(带默认值): default_value
  131. ''key1' 是否存在于字典中: True
  132. '键的列表:
  133. 'key1
  134. 'key2
  135. '键值对的列表:
  136. '键: key1 , 值: Value1
  137. '键: key2 , 值: Value2
  138. '值的列表:
  139. 'Value1
  140. 'Value2
  141. Rem 模拟Python中dict()函数应用2:动态数据存储
  142. Sub TestRun_5()
  143. ' 声明一个Scripting.Dictionary对象
  144. Dim user_data As Object
  145. ' 创建Scripting.Dictionary对象
  146. Set user_data = CreateObject("Scripting.Dictionary")
  147. ' 打印初始的字典(VBA中无法直接打印字典,但可以打印其项数)
  148. Debug.Print "初始的user_data字典(项数): " & user_data.count
  149. ' 添加键值对
  150. user_data.add "name", "Myelsa"
  151. user_data.add "age", 18
  152. ' 打印更新后的字典(VBA中无法直接打印整个字典,但可以遍历并打印其键值对)
  153. Debug.Print "更新后的user_data字典:"
  154. Dim key As Variant
  155. For Each key In user_data.keys
  156. Debug.Print "键: " & key & ", 值: " & user_data(key)
  157. Next key
  158. End Sub
  159. '初始的user_data字典(项数): 0
  160. '更新后的user_data字典:
  161. '键: name, 值: Myelsa
  162. '键: age, 值: 18
  163. Rem 模拟Python中dict()函数应用3:配置文件和参数设置
  164. Sub TestRun_6()
  165. ' 声明Scripting.Dictionary对象
  166. Dim config As Object
  167. ' 创建Scripting.Dictionary对象
  168. Set config = CreateObject("Scripting.Dictionary")
  169. ' 添加键值对
  170. config.add "database_url", "postgresql://user:password@localhost:5432/mydb"
  171. config.add "debug_mode", True
  172. ' 打印字典内容
  173. Debug.Print "Config 字典内容:"
  174. Dim key As Variant
  175. For Each key In config.keys
  176. ' 对于布尔值,我们需要特殊处理以在VBA中正确显示
  177. Dim value As Variant
  178. value = config(key)
  179. If VBA.IsNumeric(value) Then
  180. Debug.Print "键: " & key & ", 值: " & IIf(value, "True", "False")
  181. Else
  182. Debug.Print "键: " & key & ", 值: " & CStr(value)
  183. End If
  184. Next key
  185. End Sub
  186. 'config 字典内容:
  187. '键: database_url, 值: postgresql://user:password@localhost:5432/mydb
  188. '键: debug_mode, 值: True
  189. Rem 模拟Python中dict()函数应用4:统计数据
  190. Sub TestRun_7()
  191. ' 声明Scripting.Dictionary对象来存储单词计数
  192. Dim word_counts As Object
  193. ' 声明变量来存储文本
  194. Dim text As String
  195. ' 声明变量来存储分割后的单词
  196. Dim words As Variant
  197. ' 声明变量来存储当前单词
  198. Dim word As Variant
  199. ' 声明变量来存储单词的计数
  200. Dim count As Integer
  201. ' 创建Scripting.Dictionary对象
  202. Set word_counts = CreateObject("Scripting.Dictionary")
  203. ' 设置文本内容
  204. text = "Myelsa is a sunny and handsome boy. Myelsa is wonderful!"
  205. ' 使用Split函数按空格分割文本为单词数组
  206. words = Split(text, " ")
  207. ' 遍历单词数组
  208. For Each word In words
  209. ' 忽略大小写并去除单词两端的空白字符
  210. word = Trim(LCase(word))
  211. ' 如果单词已经在字典中,则增加计数
  212. If word_counts.Exists(word) Then
  213. word_counts(word) = word_counts(word) + 1
  214. ' 否则,将单词添加到字典并设置计数为1
  215. Else
  216. word_counts.add word, 1
  217. End If
  218. Next word
  219. ' 打印单词计数
  220. Debug.Print "单词计数:"
  221. Dim key As Variant
  222. For Each key In word_counts.keys
  223. Debug.Print "单词: " & key & ", 计数: " & word_counts(key)
  224. Next key
  225. End Sub
  226. 单词计数:
  227. '单词: myelsa, 计数: 2
  228. '单词: is, 计数: 2
  229. '单词: a, 计数: 1
  230. '单词: sunny, 计数: 1
  231. '单词: and, 计数: 1
  232. '单词: handsome, 计数: 1
  233. '单词: boy., 计数: 1
  234. '单词: wonderful!, 计数: 1
  235. Rem 模拟Python中dict()函数应用5:映射和转换
  236. Sub TestRun_8()
  237. ' 声明Scripting.Dictionary对象来存储缩写和对应的扩展
  238. Dim abbreviations As Object
  239. ' 声明变量来存储文本
  240. Dim text As String
  241. ' 声明变量来存储缩写和扩展
  242. Dim abbr As Variant
  243. Dim expansion As Variant
  244. ' 创建Scripting.Dictionary对象
  245. Set abbreviations = CreateObject("Scripting.Dictionary")
  246. ' 添加缩写和对应的扩展
  247. abbreviations.add "BTW", "By the way"
  248. abbreviations.add "LOL", "Laugh out loud"
  249. ' 设置文本内容
  250. text = "BTW, this is a LOL example."
  251. ' 遍历字典中的缩写和扩展
  252. For Each abbr In abbreviations.keys
  253. expansion = abbreviations(abbr)
  254. ' 使用Replace函数替换文本中的缩写
  255. text = Replace(text, abbr, expansion)
  256. Next abbr
  257. ' 打印替换后的文本
  258. Debug.Print "替换后的文本:" & text
  259. ' 打印缩写和扩展的字典(在VBA中不能直接打印字典,但可以打印其内容)
  260. Debug.Print "缩写和扩展的字典:"
  261. For Each abbr In abbreviations.keys
  262. Debug.Print "缩写: " & abbr & ", 扩展: " & abbreviations(abbr)
  263. Next abbr
  264. End Sub
  265. '替换后的文本:By the way, this is a Laugh out loud example.
  266. '缩写和扩展的字典:
  267. '缩写: BTW, 扩展: By the way
  268. '缩写: LOL, 扩展: Laugh out loud
  269. Rem 模拟Python中dict()函数应用8:构建复杂数据结构
  270. Sub TestRun_9()
  271. ' 声明Scripting.Dictionary对象来存储用户信息
  272. Dim users As Object
  273. ' 声明变量来存储用户名称和用户的详细信息字典
  274. Dim userName As Variant
  275. Dim userInfo As Object
  276. ' 声明变量来存储用户的年龄和邮箱
  277. Dim age As Integer
  278. Dim email As String
  279. ' 创建Scripting.Dictionary对象来存储用户信息
  280. Set users = CreateObject("Scripting.Dictionary")
  281. ' 添加第一个用户信息
  282. Set userInfo = CreateObject("Scripting.Dictionary")
  283. age = 18
  284. email = "alice@example.com"
  285. userInfo.add "age", age
  286. userInfo.add "email", email
  287. users.add "Myelsa", userInfo
  288. ' 添加第二个用户信息
  289. Set userInfo = CreateObject("Scripting.Dictionary")
  290. age = 15
  291. email = "bob@example.com"
  292. userInfo.add "age", age
  293. userInfo.add "email", email
  294. users.add "Jimmy", userInfo
  295. ' 打印用户信息
  296. Debug.Print "用户信息:"
  297. For Each userName In users.keys
  298. Debug.Print "用户名: " & userName
  299. Dim userInfoKey As Variant
  300. For Each userInfoKey In users(userName).keys
  301. Debug.Print " " & userInfoKey & ": " & users(userName)(userInfoKey)
  302. Next userInfoKey
  303. Next userName
  304. End Sub
  305. '用户信息:
  306. '用户名: Myelsa
  307. ' age: 18
  308. 'email: alice@ example.com
  309. '用户名: Jimmy
  310. ' age: 15
  311. 'email: bob@ example.com
2、dict()与dict差异对比:

1、dict():

        在Python中,dict()函数用于创建字典对象,其优点和缺点主要与字典这种数据结构本身相关。

1-1、优点:

1-1-1、快速访问:字典提供了基于键的快速查找、插入和删除操作。由于字典底层是通过哈希表实现的,所以这些操作的时间复杂度平均情况下是O(1),这使得字典在处理大量数据时非常高效。

1-1-2、灵活性:字典允许存储任意类型的键和值,只要键是可哈希的(即具有不变性并能生成唯一的哈希值)。这种灵活性使得字典能够轻松适应各种应用场景。

1-1-3、存储关联数据:字典非常适合存储具有关联关系的数据,如配置信息、映射关系等。通过键可以方便地获取或修改与之关联的值。

1-1-4、动态性:字典的大小可以动态调整,可以根据需要添加或删除键值对,无需预先定义大小。

1-2、缺点:

1-2-1、无序性:在Python 3.6之前的版本中,字典是无序的,即键值对的存储顺序是不确定的。虽然从Python 3.7开始,字典保持了插入顺序,但它仍然不是一个有序的集合类型。如果需要保持顺序,可能需要额外的处理或使用其他数据结构。

1-2-2、空间开销:由于字典使用哈希表来存储键值对,因此相对于列表等其他数据结构,字典可能会占用更多的内存空间。特别是在存储大量数据时,这种空间开销可能会变得更加显著。

1-2-3、键的唯一性:字典要求键必须是唯一的。如果尝试使用相同的键多次添加元素,后添加的值会覆盖先前的值。这可能会在某些情况下导致数据丢失或意外覆盖。

1-2-4、哈希冲突:虽然哈希表的设计旨在减少哈希冲突,但在极端情况下,如果哈希函数的设计不够理想或键的分布不均匀,哈希冲突可能会导致性能下降。

        注意,这些优缺点是针对字典这种数据结构本身而言的,而不是针对dict()函数本身dict()函数只是用于创建字典对象的一个简单工具,其性能和行为与字典数据结构本身是一致的。因此,在选择使用字典时,应充分考虑其优缺点,并根据具体的应用场景和需求来决定是否使用。

2、dict:

2-1、优点:

        Python中的字典(dictionary)类型是一种非常强大且灵活的数据结构,用于存储键值对。

2-1-1、快速访问:字典的查找、插入和删除操作的时间复杂度接近于O(1),即平均情况下,无论字典有多大,这些操作都能在常数时间内完成。这使得字典成为存储需要频繁查找的数据的理想选择。

2-1-2、灵活性:字典允许存储任何类型的键和值,只要键是可哈希的(即具有不变性,并且可以通过哈希函数得到唯一的哈希值)。这意味着你可以在一个字典中存储各种类型的数据,如整数、字符串、浮点数、列表、元组、其他字典等。

2-1-3、无序性:在Python 3.7及更高版本中,字典保持了插入顺序(尽管它仍然不是一个有序的集合类型)。这种特性在某些场景下很有用,比如当你需要按特定顺序遍历字典时。

2-1-4、易于使用:字典的语法直观易懂,创建和修改字典的操作也非常简单。

2-1-5、可扩展性:字典的大小可以动态调整,你可以根据需要添加或删除键值对,而无需预先定义字典的大小。

2-2、缺点:

2-2-1、无序性:在Python 3.6及之前的版本中,字典是无序的,这意味着你不能预测键值对的存储顺序。虽然这通常不是问题,但在需要按特定顺序处理键值对的情况下,它可能会导致问题。

2-2-2、空间开销:由于字典需要维护哈希表和存储键值对,因此相对于列表等其他数据结构,字典可能会占用更多的内存空间。

2-2-3、键的唯一性:字典要求键必须是唯一的。如果尝试使用相同的键多次添加元素,后添加的值会覆盖先前的值。这可能会在某些情况下导致数据丢失或意外覆盖。

2-2-4、哈希冲突:虽然字典的查找、插入和删除操作在平均情况下具有O(1)的时间复杂度,但在最坏情况下(即哈希冲突很多时),这些操作的时间复杂度可能会退化。虽然Python的字典实现通过开放寻址等技术减少了哈希冲突的影响,但在极端情况下仍可能出现问题。

2-2-5、不可变性:字典本身是不可变的,但字典的值可以是可变的。这可能会导致在并发编程中出现问题,因为多个线程或进程可能同时修改同一个字典的值,从而引发数据不一致或竞争条件。

        注意,这些优缺点是相对于其他数据结构而言的,而不是绝对的。在选择使用字典还是其他数据结构时,应根据具体的应用场景和需求来权衡这些优缺点。

3、相关文章:

3-1、Python-VBA函数之旅-all()函数

3-2、Python-VBA函数之旅-any()函数 

3-3、Python-VBA函数之旅-ascii()函数 

3-4、Python-VBA函数之旅-bin()函数 

Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客

Python函数之旅:Myelsa的Python函数之旅(高铁直达)

个人主页:非风V非雨-CSDN博客

欢迎志同道合者一起交流学习,我的QQ:94509325/微信:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/719062
推荐阅读
相关标签
  

闽ICP备14008679号