list取交集速度最快的犯法
时间: 2023-08-23 09:03:52 浏览: 34
可以使用Python内置的`set`功能,将两个列表转换成集合,然后使用`&`操作符取交集,最后将结果转换回列表即可。这种方法的时间复杂度为O(len(a)+len(b)),速度非常快。
以下是一个示例代码:
```python
a = [1,2,3,4,5]
b = [3,4,5,6,7]
intersection = list(set(a) & set(b))
print(intersection)
```
输出结果为:
```
[3, 4, 5]
```
相关问题
java两个list取交集
你可以使用`retainAll()`方法来获取两个Java List的交集。这个方法会修改调用它的List,只保留与指定集合相同的元素。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
list1.retainAll(list2);
System.out.println(list1); // 输出 [2, 3]
}
}
```
在上述代码中,我们创建了两个List:`list1`和`list2`,它们分别包含整数元素。然后,我们调用`list1.retainAll(list2)`,这会保留`list1`中与`list2`相同的元素,即交集。最后,我们打印输出`list1`,得到了交集 `[2, 3]`。
两个List取交集
你可以使用Python内置的set()函数来找到两个列表的交集。将两个列表分别转换为集合,然后使用“&”操作符来获取它们的交集。
示例代码如下:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
intersection = set(list1) & set(list2)
print(list(intersection)) # 输出 [3, 4, 5]
```
在这个例子中,我们首先将list1和list2分别转换为集合,然后使用“&”符号来获取它们的交集。最后,我们将结果转换回列表并将其打印出来。