帮我写一段Python 代码,要注意效率,有两个列表,两个列表里数据量很大,数据量有几十万,当第一个列表的数字等于第二个列表的数字的时候,就把它加入到一个空的新建列表里
时间: 2024-01-12 12:03:45 浏览: 58
当第一个列表长度较小时,可以使用嵌套循环进行遍历比较,但数据量很大时效率非常低。更加高效的方法是将第一个列表中的元素存放到一个集合中,然后遍历第二个列表寻找匹配项。在Python中,可以使用set()函数创建集合,代码如下:
```
list1 = [1, 2, 3, 4, 5]
list2 = [3, 6, 9, 1, 8, 7, 2, 4, 5]
set1 = set(list1)
result = []
for num in list2:
if num in set1:
result.append(num)
print(result)
```
输出结果为:[3, 1, 2, 4, 5]
这段代码使用了集合的特性,使得查找匹配项的过程时间复杂度为O(1),因此可以快速地处理大规模数据。
相关问题
帮我写一段Python 代码,要注意效率,有两个列表,列表里数据量很大,有几十万,当第一个列表的数字等于第二个列表的数字的时候,就把它加入到一个空的新建列表里
好的,根据您的要求,我为您撰写了以下的 Python 代码:
```python
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #第一个列表
list2 = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30] #第二个列表
new_list = [] #新建列表
for i in list1: #遍历第一个列表
if i in list2: #判断第一个列表中的数字是否在第二个列表里
new_list.append(i) #如果在,就将这个数字加入到新建列表里
print(new_list) #打印结果
```
请注意,这是一个简单的示例代码,您需要将 `list1` 和 `list2` 替换为您自己的列表。如果您的列表非常大,请确认您的计算机可以处理大量数据,否则程序可能会变得非常缓慢。
阅读全文