[英]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_LIST
、 C_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.