有两个文件,每个都有很多行ip地址,求出两个文件中相同的ip地址(面试题)
有两个文件,每个都有很多行ip地址,求出两个文件中相同的ip地址(面试题)
# coding:utf-8
import bisect
with open(‘test1.txt’, ‘r’) as f1:
list1 = f1.readlines()
for i in range(0, len(list1)):
list1[i] = list1[i].strip(‘\n’)
with open(‘test2.txt’, ‘r’) as f2:
list2 = f2.readlines()
for i in range(0, len(list2)):
list2[i] = list2[i].strip(‘\n’)
list2.sort()
length_2 = len(list2)
same_data = []
for i in list1:
pos = bisect.bisect_left(list2, i)
if pos < len(list2) and list2[pos] == i:
same_data.append(i)
same_data = list(set(same_data))
print(same_data)
考察要点就是:(1)用with (2)处理行末的’\n’ (3)使用二分查找提高算法效率。(4)使用set快速去重。