访问元组列表中的y坐标

时间:2017-02-24 23:56:01

标签: python list indexing tuples

我有一个列表,其中列表类似于li = [(a,b),(c,d),...,(t,u)]。我试图索引每个元组的y坐标来计算有多少元组的y坐标为0,1或2,但我不确定如何这样做。调用li [i]只返回(a,b)但不返回我想要的特定坐标(b)。我搜索过类似的问题,所以我能够获得一些列表理解,但仍然无法处理循环。我的代码目前看起来像这样:

for i in range(len(li)):
    if (x,y) for x, y in li if y == 0:
        zero_count += 1
    elif (x,y) for x, y in li if y == 1:
        one_count += 1
    # if y-coordinate = 2
    else:
        two_count += 1   

3 个答案:

答案 0 :(得分:1)

你得到了元组

li[i]

要获取第二个元素,可以向 表达式添加下标:

li[i][1]

请注意您的#34;拆包"在其他情况下,参考是一个好主意,有效地使用

x, y = li[i]

在一个作业中抓取两个元素。

答案 1 :(得分:1)

您可以使用for (a,b) in li类型语法从列表中解压缩元组。此代码应该执行您的代码尝试执行的操作:

counts = [0,0,0]

for (x,y) in li:
    counts[y] +=1

假设y-co-ord只能是0,1或2 - 正如你的帖子暗示的那样

答案 2 :(得分:0)

如果您为for循环使用范围,则会返回y值:

for i in range(len(li)):
    print li[i][1]

如果您不需要li索引,您也可以这样做:

for i in li:
    print i[1]