Python比较两个列表或文本内容是否相同-代码实现

1. 基础版-检查两个列表是否含有同样的值(同一值在不同列表里的位置可能不同),并将不同的内容分别输出编号和值;

a=[6,5,4,3,2,1]
b=[1,2,9]
for i in range(0,len(a)):
    if a[i] not in b:
        print("a有b没有","位置",i,"值",a[i])
print("---------")
for i in range(0,len(b)):
    if b[i] not in a:
        print("b有a没有","位置",i,"值",b[i])

程序运行结果:
a有b没有 位置 0 值 6
a有b没有 位置 1 值 5
a有b没有 位置 2 值 4
a有b没有 位置 3 值 3
---------
b有a没有 位置 2 值 9

2. 进阶版-比较两个txt文本是否一样,并将不同点输出;

    有两个txt,分别为“喜欢舞蹈.txt", "喜欢音乐.txt";

    Python比较两个列表或文本内容是否相同-代码实现_第1张图片

    Python比较两个列表或文本内容是否相同-代码实现_第2张图片

   代码实现如下:

'''比较两个文本内容'''
f_new=open('喜欢音乐.txt','r')
a=f_new.readlines()
f_old=open('喜欢舞蹈.txt','r') #以读取模式打开txt,python自带的读取文件方式
b=f_old.readlines()     #读取txt里所有行,并存储在变量b中
for i in range(0,len(a)):
    if a[i]!='\n':   #readlines会将换行读取成'\n'存储下来,因此比较时略过'\n'
        if a[i] not in b:
            print("只喜欢音乐不喜欢舞蹈",i,a[i])
print('--------------')
for i in range(0,len(b)):
    if b[i] !='/n':
        if b[i] not in a:
            print("只喜欢舞蹈不喜欢音乐",i,b[i])

程序运行结果为:

只喜欢音乐不喜欢舞蹈 0 Tom 

只喜欢音乐不喜欢舞蹈 1 Amy

只喜欢音乐不喜欢舞蹈 2 Tony

--------------
只喜欢舞蹈不喜欢音乐 2 Jenny

只喜欢舞蹈不喜欢音乐 3 Steve

只喜欢舞蹈不喜欢音乐 4 Ali

注意,比较txt时,使用python的f.readlines时会将每一行读取成列表里每一个值,包括换行符‘\n'。假如两个txt都有相同的一行字符,但一个有换行符,一个没有换行符,此时比较时会认为这两行不一样;这是肉眼看不出来的;此时可以用print输出readlines()看一下;

3.比较excel....TBD.

你可能感兴趣的:(Python)