Python 中的ordereddct

OrderedDict 是 Python 中 Dict 对象的子类。字典和ordereddct的区别在于 ordereddct 本身保持插入的键的顺序,而在字典中,键的顺序不是重要的部分。

OrderedDict 是标准的库类。它位于collections模块中。

为了使用它,用户必须导入 collections 标准库模块。

示例:


import collections

在本文中,我们将讨论 ordereddct 上的一些操作,以及 Dict 与 ordereddct 有何不同。

用户可以在 Dict 类和 OrderedDict 类中放入一些键和很多带有值的键。在下面的例子中,我们将展示 Dict 类的顺序是如何变化的,但是对于 OrderedDict 类,它将保持不变。

示例:


import collections
# we will first create normal dict
print('Dict:')
user_dict = {}
user_dict['PP'] = 10
user_dict['QQ'] = 20
user_dict['RR'] = 30
user_dict['SS'] = 40
user_dict['TT'] = 50
user_dict['UU'] = 60
for item in user_dict.items():
   print(item)
print()
# now, we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)

输出:

Dict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

更改特定键的值

对于ordereddct类,改变特定键的值后,键的顺序不会改变,但是在 Dict 类中,顺序可以改变,也可以不改变。

示例:


import collections
# we will first create normal dict
print('Dict:')
user_dict = {}
user_dict['PP'] = 10
user_dict['QQ'] = 20
user_dict['RR'] = 30
user_dict['SS'] = 40
user_dict['TT'] = 50
user_dict['UU'] = 60
for item in user_dict.items():
   print(item)
#now, we will change the value for key QQ
user_dict['QQ'] = 111
print('After changing value of specific key in Dict')
for item in user_dict.items():
   print(item)
print()
#we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)
# now, we will change the value for specific key QQ
user_ordered_dict['QQ'] = 111
print('After changing value of specific key in Ordered Dict')
for item in user_ordered_dict.items():
   print(item)

输出:

Dict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After changing value of specific key in Dict
('PP', 10)
('QQ', 111)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After changing value of specific key in Ordered Dict
('PP', 10)
('QQ', 111)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

删除和重新插入 OrderedDict 类中的元素

当我们从 OrderedDict 类中删除一个元素,然后执行该特定键和值的重新插入操作时,它会将该元素推到后面。虽然,OrderedDict 类在插入过程中保持顺序,但是当执行删除过程时,它会移除顺序信息,并将重新插入的元素视为新条目。

示例:


import collections
#we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)
#First we will delete item in key RR
user_ordered_dict.pop('RR')
print('After Deleting the key')
for item in user_ordered_dict.items():
   print(item)
#now, we will re-inserte the item 
user_ordered_dict['RR'] = 30
print('After Re-inserting the key and value')
for item in user_ordered_dict.items():
   print(item)   

输出:

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After Deleting the key
('PP', 10)
('QQ', 20)
('SS', 40)
('TT', 50)
('UU', 60)
After Re-inserting the key and value
('PP', 10)
('QQ', 20)
('SS', 40)
('TT', 50)
('UU', 60)
('RR', 30)

如何在订单的开头插入订单

当用户想要在 OrderedDict 类的开头插入一些元素时,他/她可以使用“更新”方法。

示例:


from collections import OrderedDict
user_ordered_dict = OrderedDict([('Jake', '10'), ('John', '20'), ('Ross', '40')])
print("The current dictionary values are :")
print(user_ordered_dict)
user_ordered_dict.update({'Ryan':'70'})
user_ordered_dict.move_to_end('Ryan', last = False)
print("The updated dictionary values are : ")
print(user_ordered_dict)

在上面的代码中:

  • 首先,我们已经导入了所需的包。
  • 然后,我们通过使用 order ordinate 创建了有序字典。
  • 我们使用“更新”方法来指定键及其值。
  • 然后,我们使用’ move_to_end ‘函数将键及其值移动到最后。
  • 显示所需的输出。

输出:

The current dictionary values are :
OrderedDict([('Jake', '10'), ('John', '20'), ('Ross', '40')])
The updated dictionary values are : 
OrderedDict([('Ryan', '70'), ('Jake', '10'), ('John', '20'), ('Ross', '40')])

如何用 OrderedDict 检查字符串中的字符顺序

如果用户想要检查字符串中字符的顺序,他们可以使用“OrderedDict”方法。让我们理解下面的例子。

示例:


from collections import OrderedDict
def check_order(user_input, user_pattern):
   user_dict = OrderedDict.fromkeys(user_input)
   pattern_length = 0
   for key,value in user_dict.items():
      if (key == user_pattern[pattern_length]):
         pattern_length = pattern_length + 1
      if (pattern_length == (len(user_pattern))):
         return 'The order of pattern is correct'
   return 'The order of pattern is incorrect'
user_input = 'Hello Jake'
input_pattern = 'Ja'
print("The string is ")
print(user_input)
print("The input pattern is ")
print(input_pattern)
print(check_order(user_input,input_pattern))
user_input = 'Hello Jake'
input_pattern = 'ke'
print("The string is ")
print(user_input)
print("The input pattern is ")
print(input_pattern)
print(check_order(user_input,input_pattern))

在上面的代码中:

  • 首先,我们导入了所需的包。
  • 然后,我们定义了“check_order”方法,该方法将采用两个参数。
  • 然后,我们使用“fromkeys”方法创建了有序字典。
  • 我们已经将模式的长度初始化为 0。
  • 如果键等于模式,则模式的长度将增加。
  • 但是,如果模式的长度与当前长度相同,这意味着顺序是正确的。否则,订单不正确。

输出:

The string is 
Hello Jake
The input pattern is 
Ja
The order of pattern is correct
The string is 
Hello Jake
The input pattern is 
ke
The order of pattern is incorrect

结论

在本教程中,我们讨论了 OrderedDict 以及它与普通字典的区别。我们还解释了用户如何在 OrderedDict 中删除和插入元素,并在字典顺序的开头重新排列它们。


原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-12 13:17
下一篇 2024-12-12 13:17

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python编程二级证书考试相关现已可以上网购买

    计算机二级Python考试是一项重要的国家级认证考试,也是Python编程的入门考试。与其他考试一样,Python编程二级证书的考生需要进入正式考试,而为了备考,这篇文章将详细介绍…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论