将具有重复键的 ImmutableMultiDict 转换为Python中的列表列表
在本文中,我们将了解如何使用Python将具有重复键的 ImmutableMultiDict 转换为列表列表。
使用 Werkzeug Python
Werkzeug 是一个 WSGI 实用程序库。 WSGI 是一种协议或约定,可确保您的 Web 应用程序可以与 Web 服务器通信,更重要的是,确保 Web 应用程序可以有效地协作。要将具有重复键的 ImmutableMultiDict 转换为列表列表,我们将使用它的一个函数来创建 ImmutableMultiDict。
我们可以使用 pip 命令安装 werkzeug 库,方法是打开命令行并键入以下命令 -
pip install werkzeug
示例 1:
因此,最初,我们将使用 werkzeug 库的数据结构类创建一个带有重复键的 immutableMultiDict,然后是 ImmutableMultiDict()函数。在构建 ImmutableMultiDict 之后,我们将利用它的方法之一,lists(),返回一个生成器对象,我们将使用 list函数将其转换为列表。
Python3
# Importing library
from werkzeug.datastructures import ImmutableMultiDict
d = ImmutableMultiDict([('Subject', 'Chemistry'),
('Period', '1st'),
('Period', '4th')])
print(list(d.lists()))
Python3
from werkzeug.datastructures import ImmutableMultiDict
# In this example we are adding gadget and accessories
d = ImmutableMultiDict([('Gadget', 'DSLR'),
('Accessories','Lens 18-105mm'),
('Accessories', 'Lens 70-200mm'),
('Accessories', 'Tripod stand')])
list(d.lists())
输出:
[('Subject', ['Chemistry']), ('Period', ['1st', '4th'])]
示例 2:
Python3
from werkzeug.datastructures import ImmutableMultiDict
# In this example we are adding gadget and accessories
d = ImmutableMultiDict([('Gadget', 'DSLR'),
('Accessories','Lens 18-105mm'),
('Accessories', 'Lens 70-200mm'),
('Accessories', 'Tripod stand')])
list(d.lists())
输出:
[(‘Gadget’, [‘DSLR’]), (‘Accessories’, [‘Lens 18-105mm’, ‘Lens 70-200mm’, ‘Tripod stand’])]
让我们看一下我们只是一步一步编写的代码。
- 因此,在第一行中,我们从 werkzeug 模块导入 ImmutableMultiDict 类,我们可以直接使用该类创建 ImmutableMultiDict。请记住,与标准字典不同,MultiDict 是 Dictionary 的子类,它可以为同一个键有多个值。
- 我们创建 ImmutableMultiDict 并将其存储在第二行代码的变量 'd' 中。
- 我们传递了两个具有相同名称“Period”的键,如果它是一个普通的字典,那么后面的那个会覆盖这个值,并且只能存储一个,而不是同一个键的两个单独的值姓名。
- 我们现在可以直接打印这个 ImmutableMultiDict,但我们的目标是将其转换为列表列表,因此我们利用其类的一个函数 .lists() 将与单个键关联的值从元组更改为列表。如果我们想仔细检查它,我们可以使用 for 循环来打印它。
- 最后,我们将它包装在一个列表函数中,它将它存储在一个列表中,然后我们打印它。