我有一个基于第一列
排序的数据文件1 3 2
3 6
4 8 5 6 2
4 9
5 2 2
有一个键有三个项目,比如seen = [4 8 5]
,我想在上面的数组中搜索。由于某些行少于三列,以下代码无法比较,我知道
take = [row for row in lines if row[0] == seen[0] and row[1] == seen[1] and row[2] == seen[2]]
那么我应该为少于三列的行做些什么呢?
答案 0 :(得分:3)
使用切片,您无需手动检查所有3个项目并检查长度:
take = [row for row in lines if row[:3] == seen]
答案 1 :(得分:1)
添加一名警卫(len(row) >= 3
):
take = [row for row in lines if len(row) >= 3 and row[0] == seen[0] and row[1] == seen[1] and row[2] == seen[2]]
如果行没有足够的元素,这将使检查短路(并失败)