我有一个这样的清单
tails = {(1, 352, 368), (2, 336, 368), (3, 320, 368)}
其中第一个值是尾号,第二个是它的 x 位置,第三个是它的 y 位置。稍后在我的代码中,我有
for item in tail:
pygame.draw.rect(windowSurface, RED, (xposition, yposition, 16, 16))
如何从该特定元组中获取第二个和第三个值?
我有一个这样的清单
tails = {(1, 352, 368), (2, 336, 368), (3, 320, 368)}
其中第一个值是尾号,第二个是它的 x 位置,第三个是它的 y 位置。稍后在我的代码中,我有
for item in tail:
pygame.draw.rect(windowSurface, RED, (xposition, yposition, 16, 16))
如何从该特定元组中获取第二个和第三个值?
由于您正在寻找学习 python 基础知识,我将展示几种不同的方法来做到这一点(尽管 python 的“应该有一种——最好只有一种——明显的方法”):
for item in tails:
xposition = item[1] # get item by index
yposition = item[2]
pygame.draw.rect(windowSurface, RED, (xposition, yposition, 16, 16))
或者
for item in tails:
( xposition, yposition ) = item[1:] # tuple assignment
pygame.draw.rect(windowSurface, RED, (xposition, yposition, 16, 16))
或者
for tail_num, xposition, yposition in tails: # tuple assignment in for-loop
pygame.draw.rect(windowSurface, RED, (xposition, yposition, 16, 16))
或者
# prepare args using list comprehension
rect_args_list = [ tuple(item[1:]) + ( 16, 16) for item in tails ]
for rect_args in rect_args_list:
pygame.draw.rect(windowSurface, RED, rect_args)