我有一个 csv 文件,其中包含 3 列 x、y、z 坐标,即这种格式:我使用下面的代码来导入它并处理它的数据:import csvfrom operator import itemgettercsvfile = open(r'C:\Users\%username%\Desktop\Deep-lizard\x_y_z coor.csv')inFile = csv.reader(csvfile)# skip headerinFile.__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了一个元组列表:我想要实现的是过滤列表,如果元组中的第三个元素(即 z 坐标)大于 0,则在列表中包含该条目(3 个元素的元组),否则如果它为 0,则不要不包括它。这样做的最佳方法是什么?
1 回答
BIG阳
TA贡献1859条经验 获得超6个赞
您可以if在理解的末尾放置一个语句以进行过滤。
In [1]: l = list(zip(range(10),range(0,20,2)))
...: l
...:
Out[1]:
[(0, 0),
(1, 2),
(2, 4),
(3, 6),
(4, 8),
(5, 10),
(6, 12),
(7, 14),
(8, 16),
(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)]
添加回答
举报
0/150
提交
取消