gpt4 book ai didi

python - 在没有 numpy 的情况下搜索二维列表

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:40 25 4
gpt4 key购买 nike

我想定义一个接受两个参数的函数:intlist

如果函数在列表中找到整数,它会返回它的坐标

例如,如果不使用 numpy,我将如何处理以下列表中的数字 4?

l = [
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 2, 1, 1, 0, 1, 1, 1, 0],
[0, 1, 0, 1, 0, 0, 0, 1, 0],
[0, 1, 0, 1, 1, 1, 0, 1, 0],
[0, 1, 0, 0, 0, 1, 0, 1, 0],
[0, 1, 1, 1, 0, 1, 0, 1, 0],
[0, 0, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 1, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 1, 1, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 1, 1, 0, 1, 1, 4, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]
]

您可以假设目标总是只出现一次,并且总是包含在列表中。

最佳答案

The target will always show up only once and will always be contained in the list

您可以使用enumerate 来枚举外部列表和内部列表的元素。

def coords(lst, find):
return next((i, j) for i, sub in enumerate(lst)
for j, x in enumerate(sub)
if x == find)

使用列表 l 进行演示:

>>> coords(l, 2)
>>> (1, 1)
>>> coords(l, 1)
>>> (1, 2)

如果您稍后想要在目标不在列表中时调整函数以正常工作,请记住 next采用可选的 default 参数。

关于python - 在没有 numpy 的情况下搜索二维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53084961/

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