我有两个列表,每个列表都包含具有属性gps_seconds
的对象。
gps_seconds
属性会有一段时间排成一行,我想将两个列表修剪下来,以便我有一个具有共同时间戳的单独列表。
例如,在列表A
中,对象可能包含gps_seconds
个参数:
99.8 99.9 100.0 100.1 100.2
列表B
可能包含:
99.9 100.0 100.1 100.2 100.3
在这种情况下,我想从A
删除第一个条目,从B
删除最后一个条目,以确保两个列表的时间戳匹配正确。
我尝试过一种相当不优雅的方法,但感觉可能会有一种pythonic的方法来快速完成这个我不知道的方法。
答案 0 :(得分:4)
这应该有效:
set1 = set([99.8, 99.9, 100.0, 100.1, 100.2])
set2 = set([99.9, 100.0, 100.1, 100.2, 100.3])
res = set1 & set2
print res
Operator &
on sets返回集合的交集。
答案 1 :(得分:1)
您可以使用列表理解来执行此操作,但使用in
可能不是最快的方法...
list1 = [99.8,
99.9,
100.0,
100.1,
100.2]
list2 = [99.9,
100.0,
100.1,
100.2,
100.3]
[a for a in [b for b in list1 if b in list2] if a in list1]
返回
[99.9, 100.0, 100.1, 100.2]
答案 2 :(得分:0)
您可以使用套装:
ViewModel
这里我假设时间戳将始终是升序,因此排序两个集合的交集应该是有效的。