📌  相关文章
📜  将具有重复键的 ImmutableMultiDict 转换为Python中的列表列表

📅  最后修改于: 2022-05-13 01:55:08.262000             🧑  作者: Mango

将具有重复键的 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())

输出:

让我们看一下我们只是一步一步编写的代码。

  • 因此,在第一行中,我们从 werkzeug 模块导入 ImmutableMultiDict 类,我们可以直接使用该类创建 ImmutableMultiDict。请记住,与标准字典不同,MultiDict 是 Dictionary 的子类,它可以为同一个键有多个值。
  • 我们创建 ImmutableMultiDict 并将其存储在第二行代码的变量 'd' 中。
  • 我们传递了两个具有相同名称“Period”的键,如果它是一个普通的字典,那么后面的那个会覆盖这个值,并且只能存储一个,而不是同一个键的两个单独的值姓名。
  • 我们现在可以直接打印这个 ImmutableMultiDict,但我们的目标是将其转换为列表列表,因此我们利用其类的一个函数 .lists() 将与单个键关联的值从元组更改为列表。如果我们想仔细检查它,我们可以使用 for 循环来打印它。
  • 最后,我们将它包装在一个列表函数中,它将它存储在一个列表中,然后我们打印它。