我有一个列表,其中列表类似于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
答案 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]