繁体   English   中英

Python 中嵌套列表的迭代/双迭代

[英]Iteration/double iteration over a nested list in Python

如果已经在这里回答了类似的问题,我很抱歉,但也许我不知道如何找到它。

我有一些看起来像这样的列表:

A1, A6 = [157, 157, 0], [407, 157, 0]
A2, A7 = [207, 157, 0], [457, 157, 0]

然后我使用另一个列表将它们分组:

A_LIST = [A1, A2, A3, A4, A5, A6, A7, A8, A9, AX]

现在我想迭代“A_LIST”,从它的每个元素中取出第一个和第二个元素。 我尝试通过以下几种方式做到这一点:

def between(x, val):
    if val <= x <= val + 50:
        return True


def check_pressed():
    mouse_x, mouse_y = pygame.mouse.get_pos()
    click = pygame.mouse.get_pressed()

if click != (0, 0, 0):
    i = 0
    for i in A_LIST:
        if between(mouse_x, A_LIST[i][0]) is True and between(mouse_y, A_LIST[i][1]) is True:

这种方法会带来一个错误,即unexpected type引用“i”。 我也试过这种格式: A_LIST[i[0]] ,但后来它说IndexError: list index out of range 假设这个问题已经解决,那么我怎么能用除A_LIST之外的嵌套列表“喂”这个迭代? 比如,取 10 个这样的集合( B_LISTC_LIST等...),将它们放入另一个列表中,我将对其进行迭代。

提前致谢!

这应该有效:

def between(x, val):
    if val <= x <= val + 50:
        return True
    else :
        return False  # don't forget this one

if click != (0, 0, 0):
    # i = 0  <-- don't need this line
    for i in A_LIST:
        if between(mouse_x, i[0]) and between(mouse_y, i[1]) :
            # something you like

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM