大家好,欢迎来到IT知识分享网。
python:OederedDict函数
OederDict:是 Python 标准库中的一个数据结构,它是一个有序的字典(Ordered Dictionary)。与普通字典不同,有序字典会记住元素的插入顺序,这意味着你可以按照元素插入的顺序来迭代字典中的键值对。
1.基本用法
我们可以使用 collections 模块来导入 OrderedDict,然后使用它来创建有序字典。以下是一个示例:
from collections import OrderedDict # 创建一个空的有序字典 my_ordered_dict = OrderedDict() # 向有序字典中添加键值对,保持插入顺序 my_ordered_dict['apple'] = 3 my_ordered_dict['banana'] = 2 my_ordered_dict['cherry'] = 5 # 迭代有序字典,会按照插入顺序输出 for key, value in my_ordered_dict.items(): print(key, value) # 输出结果将按照插入的顺序保持一致 # apple 3 # banana 2 # cherry 5
OrderedDict 在某些情况下非常有用,特别是当你需要保持数据的顺序性,并且需要在迭代字典时按照插入的顺序访问数据时。它是一个非常方便的工具,用于处理需要保持顺序的数据。
2.排序
OrderedDict可根据key 或者val 进行排序,例如:
from collections import OrderedDict # 创建一个空的有序字典 my_ordered_dict = OrderedDict() # 添加key和value到列表 my_ordered_dict['banana'] = 3 my_ordered_dict['apple'] = 2 my_ordered_dict['cherry'] = 5 my_ordered_dict['grape'] = 4 # 显示列表按照插入顺序 print("my_ordered_dict:") for key, value in my_ordered_dict.items(): print(f"{key}: {value}") # 输出结果: # my_ordered_dict: # banana: 3 # apple: 2 # cherry: 5 # grape: 4
from collections import OrderedDict # 创建一个空的有序字典 my_ordered_dict = OrderedDict() # 添加key和value到列表 my_ordered_dict['banana'] = 3 my_ordered_dict['apple'] = 2 my_ordered_dict['cherry'] = 5 my_ordered_dict['grape'] = 4 # 自定义排序函数,按照键的首字母顺序进行排序 def sort_by_key(item): return item[0] # 使用 sorted() 函数按键对字典进行排序 sorted_dict = OrderedDict(sorted(my_ordered_dict.items(), key=sort_by_key)) # 输出按键的首字母顺序排序后的字典 print("my_ordered_dict:") for key, value in sorted_dict.items(): print(f"{key}: {value}") # 输出结果: # my_ordered_dict: # apple: 2 # banana: 3 # cherry: 5 # grape: 4
在上述代码中,我们首先定义了一个名为 sort_by_key 的自定义排序函数,它接受一个键值对作为参数,并返回该键值对的键(即 item[0])。然后,我们使用 sorted() 函数来对 my_ordered_dict 中的键值对进行排序,将 sort_by_key 函数作为 key 参数传递。
from collections import OrderedDict # 创建一个空的有序字典 my_ordered_dict = OrderedDict() # 添加key和value到列表 my_ordered_dict['banana'] = 3 my_ordered_dict['apple'] = 2 my_ordered_dict['cherry'] = 5 my_ordered_dict['grape'] = 4 # 自定义排序函数,按照键的首字母顺序进行排序 def sort_by_value(item): return item[1] # 使用 sorted() 函数按键对字典进行排序 sorted_dict = OrderedDict(sorted(my_ordered_dict.items(), key=sort_by_value)) # 输出value大小排序后的字典 print("my_ordered_dict:") for key, value in sorted_dict.items(): print(f"{key}: {value}") # 输出结果: # my_ordered_dict: # apple: 2 # banana: 3 # grape: 4 # cherry: 5
在上述代码中,我们首先定义了一个名为 sort_by_value 的自定义排序函数,它接受一个键值对作为参数,并返回该键值对的值(即 item[1])。然后,我们使用 sorted() 函数来对 my_ordered_dict 中的键值对进行排序,将 sort_by_value 函数作为 key 参数传递
3.其他基本用法
(1)添加和访问键值对
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) #添加和访问键值对: my_ordered_dict['grape'] = 4 print(my_ordered_dict) # 输出结果: # OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3), ('grape', 4)]) # 2
(2)迭代 OrderedDict
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 迭代 OrderedDict for key, value in my_ordered_dict.items(): print(key, value) # 输出结果: # apple 1 # banana 2 # cherry 3
(3)删除键值对
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 删除键值对 del my_ordered_dict['apple'] print(my_ordered_dict) # 输出结果: # OrderedDict([('banana', 2), ('cherry', 3)])
(4)获取字典的大小
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 获取字典的大小 size = len(my_ordered_dict) print(size) # 输出结果: # 3
(5)使用 clear() 方法删除所有键值对
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 使用 clear() 方法删除所有键值对 my_ordered_dict.clear() print(my_ordered_dict) # 输出结果: # OrderedDict()
(6) 复制字典
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 复制字典 copy_dict = my_ordered_dict.copy() print(my_ordered_dict) print(copy_dict) # 输出结果: # OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)])
(7)用 popitem() 方法移除最后一个键值对
from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict = OrderedDict([('apple', 1), ('banana', 2), ('cherry', 3)]) # 用 popitem() 方法可以移除最后一个键值对 last_item = my_ordered_dict.popitem() print(my_ordered_dict) # 输出结果: # OrderedDict([('apple', 1), ('banana', 2)])
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117816.html