python - 从二维数组获取索引,其中第一个元素是索引

标签 python arrays

我有一个二维数组,可以打印出以下内容:

[[0, {'dt_name': 'Go'}], [1, {'dt_name': 'Stop'}]]

我想迭代此列表,以便在 dt_nameGo 时检索索引值(第一个元素)。 IE。返回应该是0。如果dt_nameStop,则返回为1

我该怎么做?

最佳答案

一种方法是使用nextgenerator expression

lst = [[0, {'dt_name': 'Go'}], [1, {'dt_name': 'Stop'}]]
res = next(i for (i, t) in lst if t['dt_name'] == 'Go')
print(res)

输出

0

这种方法避免了构建任何额外的列表。

列表与生成器的一些计时:

lst = [[0, {'dt_name': 'Go'}], [1, {'dt_name': 'Stop'}]] * 100
%timeit next(i for (i, t) in lst if t['dt_name'] == 'Go')
452 ns ± 2.18 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit [i for (i, t) in lst if t['dt_name'] == 'Go'][0]
12.1 µs ± 36.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

在上面的示例中,在生成器上使用 next 大约快了 24 倍。

关于python - 从二维数组获取索引,其中第一个元素是索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69615719/

相关文章:

c - 使用 malloc 获取模拟数组的大小

c++ - 需要帮助为 Arduino 创建无限数组 (c/c++)

javascript - react : How to pass array of ids to method

php - 如何读取这个 PHP 数组

C 整数/ float 组奇怪的行为

python - 如何更改多处理模块使用的序列化方法?

python - 在 python 中改进这个非常简单的字典生成器

python - 使用 python 库发送 xmpp 消息

python - Mongoengine update_one+upsert 与不推荐使用的 get_or_create

python减去时间并运行if循环