迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中搜索字典列表

作者:迹忆客 最近更新:2023/12/17 浏览次数:

本教程将介绍可用于在 Python 中搜索字典列表的方法。


在 Python 中使用 next() 函数搜索字典列表

next() 函数可用于提供结果作为给定迭代器中的下一项。此方法还需要使用 for 循环来针对所有条件测试流程。

以下代码使用 next() 函数在 Python 中搜索字典列表。

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next(x for x in lstdict if x["name"] == "Klaus"))
print(next(x for x in lstdict if x["name"] == "David"))

输出:

{'name': 'Klaus', 'age': 32}
Traceback (most recent call last):
  File "<string>", line 8, in <module>
StopIteration

当我们搜索字典列表中已经存在的名称时,该方法成功实现。尽管如此,当搜索字典列表中不存在的名称时,它会给出 StopIteration 错误。

但是,在上面的代码中可以很容易地处理这个问题。你只需使用稍微不同的 API 来调整并提供默认值。

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next((x for x in lstdict if x["name"] == "David"), None))

输出:

None

除了查找项目本身,我们还可以在字典列表中查找项目的索引。为了实现这一点,我们可以使用 enumerate() 函数。

以下代码使用 next() 函数和 enumerate() 函数来搜索和查找项目的索引。

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next((i for i, x in enumerate(lstdict) if x["name"] == "Kol"), None))

输出:

2

在 Python 中使用 filter() 函数搜索字典列表

filter(function, sequence) function 用于将 sequence 与 Python 中的 function 进行比较。它根据函数检查序列中的每个元素是否为真。通过使用 filter() 函数和 lambda 函数,我们可以轻松地在字典列表中搜索一个项目。在 Python3 中,filter() 函数返回 filter 类的对象。我们可以使用 list() 函数将该对象转换为列表。

下面的代码示例向我们展示了如何使用 filter()lambda 函数在字典列表中搜索特定元素。

listOfDicts = [
    {"name": "Tommy", "age": 20},
    {"name": "Markus", "age": 25},
    {"name": "Pamela", "age": 27},
    {"name": "Richard", "age": 22},
]
list(filter(lambda item: item["name"] == "Richard", listOfDicts))

输出:

[{'age': 22, 'name': 'Richard'}]

我们使用 filter() 函数和 lambda 函数在字典列表中搜索 name 键等于 Richard 的元素。首先,我们初始化了字典列表 listOfDicts,并使用 filter() 函数搜索与 lambda 函数 lambda item: item['name'] == 'Richard' 匹配的值它。最后,我们使用 list() 函数将结果转换为列表。


在 Python 中使用列表推导搜索字典列表

列表推导式是一种相对较短且非常优雅的方式来创建基于现有列表的给定值形成的列表。

我们可以使用列表推导返回一个列表,该列表生成 Python 中字典列表的搜索结果。

以下代码使用列表推导在 Python 中搜索字典列表。

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]

print([x for x in lstdict if x["name"] == "Klaus"][0])

输出:

{'name': 'Klaus', 'age': 32}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Python 中查找列表中的最大值

发布时间:2023/12/18 浏览次数:192 分类:Python

它演示了如何在 Python 中寻找列表中的最大值。本教程将涵盖一些场景和数据类型,从简单的整数列表到更复杂的结构,如数组中的数组。

用 Python 将两个列表转换为字典

发布时间:2023/12/18 浏览次数:91 分类:Python

它演示了如何在 Python 中把列表转换成字典。本教程将介绍如何在 Python 中把两个列表转换为字典,其中一个列表包含字典的键,另一个包含值。

在 Python 中查找列表中的字符串

发布时间:2023/12/18 浏览次数:110 分类:Python

本教程演示了如何在 Python 中查找具有特定子字符串的元素。我们将使用下面的列表并提取其中有 ack 的字符串。my_list = ["Jack", "Mack", "Jay", "Mark"]

用 Python 将两个列表相乘

发布时间:2023/12/18 浏览次数:137 分类:Python

本教程演示了如何在 Python 中对两个列表进行乘法。本教程将演示在 Python 中执行两个列表元素相乘的各种方法。

用 Python 查找列表中元素的所有索引

发布时间:2023/12/18 浏览次数:89 分类:Python

本教程演示了如何在 Python 中查找列表中某个元素的所有出现位置的索引在 Python 中,列表用于在一个名称下存储多个元素。每个元素可以通过它在列表中的位置来访问。

Python 中按字母顺序对列表进行排序

发布时间:2023/12/18 浏览次数:87 分类:Python

本教程演示了如何在 Python 中按字母顺序对一个列表进行排序。在本教程中,我们将讨论如何使用 sort() 和 sorted() 函数对包含字符串的列表按字母顺序排序,并使用快速排序算法。

在Python中获取列表形状

发布时间:2023/12/18 浏览次数:133 分类:Python

本文探讨了在Python中确定列表形状的方法,涵盖了一维、嵌套和多维列表,以及处理不规则嵌套列表。在Python中,了解列表的形状对于处理数据结构非常重要,特别是涉及多维或嵌套列表的情况

在 Python 中追加元素到到列表的前面

发布时间:2023/12/18 浏览次数:196 分类:Python

它演示了如何在 Python 中把元素追加到列表的前面。在整个教程中,我们将使用一个整数列表作为例子,以关注列表插入,而不是插入各种数据类型

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便