List 从列表中的元组获取特定值

List 从列表中的元组获取特定值,list,python-2.7,tuples,List,Python 2.7,Tuples,我有一张这样的清单 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基础知识,我将展示几种不同的方法来实现

我有一张这样的清单

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“应该有一种——最好只有一种——显而易见的方法”):


tails
是列表还是集合?@shx2我很确定那是列表。不过我是新手,所以我可能错了。尾部中的每个元组对应于该尾部片段的x,y位置。稍后,当我为尾部的每个项目绘制一个矩形时,我需要它将该元组中的第二个值放在xposition中,第三个值放在yposition中。如果有什么变化,我还将向尾部添加元组。您可以打印
type(tails)
并找到答案。你在问题中定义它的方式,它是一个
集合
@shx2是的,它是一个集合。我把它改成了一个列表,因为这似乎更适合这个。我的主要问题是如何从尾部的元组中获取值。例如,如果我做tails[0],它将返回(1352368)。然而,我只需要得到352或368。所以,稍后当我对尾部中的项目执行操作时,它将类似于pygame.draw.rect(windowSurface,RED,(SECONDVALUE,THIRDVALUE,16,16)):我需要它知道它刚刚选择了哪一个。因此,如果它选择尾部[0],它知道从该元组中获取第二个值,而不是另一个值。非常感谢!我将使用第一个,因为它对我来说最有意义。
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)