按特定轴过滤元组列表

我有一个 csv 文件,其中包含 3 列 x、y、z 坐标,即这种格式:

http://img2.mukewang.com/62981d650001b2fd03090216.jpg

我使用下面的代码来导入它并处理它的数据:


import csv

from operator import itemgetter


csvfile = open(r'C:\Users\%username%\Desktop\Deep-lizard\x_y_z coor.csv')


inFile = csv.reader(csvfile)

# skip header

inFile.__next__()


#Read and sort the vertices coordinates (sort by x and y)

vertices = sorted( [(float(r[0]), float(r[1]), float(r[2])) for r in inFile], key = itemgetter(0,1) )

这变成vertices了一个元组列表:

http://img2.mukewang.com/62981d720001776f13350099.jpg

我想要实现的是过滤列表,如果元组中的第三个元素(即 z 坐标)大于 0,则在列表中包含该条目(3 个元素的元组),否则如果它为 0,则不要不包括它。这样做的最佳方法是什么?



达令说
浏览 106回答 1
1回答

BIG阳

您可以if在理解的末尾放置一个语句以进行过滤。In [1]: l = list(zip(range(10),range(0,20,2)))&nbsp; &nbsp;...: l&nbsp; &nbsp;...:Out[1]:[(0, 0),&nbsp;(1, 2),&nbsp;(2, 4),&nbsp;(3, 6),&nbsp;(4, 8),&nbsp;(5, 10),&nbsp;(6, 12),&nbsp;(7, 14),&nbsp;(8, 16),&nbsp;(9, 18)]In [2]: [x for x in l if x[1]<13]Out[2]: [(0, 0), (1, 2), (2, 4), (3, 6), (4, 8), (5, 10), (6, 12)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python