gpt4 book ai didi

python - 如何在选定的子列表索引处提取、访问和使用列表的所有值?

转载 作者:行者123 更新时间:2023-11-28 22:10:23 25 4
gpt4 key购买 nike

我的问题是我目前遇到的问题的结果。我需要做的是使用类似的东西:

if myString in list[][1]:
do something

...在这样的结构上:

[
[object1Name, string_1, string_2],
[object2Name, string_1, string_2],
[object3Name, string_1, string_2],
[object4Name, string_1, string_2]
]

我需要检查任何顶级列表项中的 myString 是否等于 string_1,并且(稍后)还获取满足条件的顶级列表项的索引。

我知道我可以使用带有 if 语句的附加 for 循环来实现它,以循环遍历顶级列表中的所有元素,但我不想避免这种情况。我想要一个最好带有“in”的单线,但如果不可能的话。

我还需要为字典而不是列表做完全相同的事情(我希望或多或少使用相同的解决方案)。

最佳答案

你应该在这里使用any(..):

if any(myString == sublist[1] for sublist in lst):
# ... do something
pass

对于一个可迭代的字典,它是完全一样的,除了键可能是一个非整数,比如:

if any(myString == subdict[some_key] for subdict in lst):
# ... do something
pass

因此,我们在这里迭代 lst 中的 sublist。如果对于 sublist 之一,myString == sublist[1],那么这将成功,否则将失败。

因此,我们在这里使用生成器。 any(..) 会在找到True 项时停止。然而,这仍然以线性时间运行(最坏的情况)。

编辑:我们可以获得第一个索引:

idx = next((idx for idx, sublist in enumerate(lst) if myString == sublist[1]), None)

如果不存在这样的索引,这将返回 None

或者我们可以通过列表理解检索所有索引:

idcs = [idx for idx, sublist in enumerate(lst) if myString == sublist[1]]

关于python - 如何在选定的子列表索引处提取、访问和使用列表的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com