比较文件和列表,看看它们是否相同
问题描述:
我有一个包含数字1-100和相同数字的列表的文件。我在比较它们并检查它们是否相同时遇到了一些问题。 这是我到目前为止的代码:比较文件和列表,看看它们是否相同
f = open("tall.txt", "w")
for i in range(101):
f.write(str(i) + "," + " ")
f.close()
with open('tall.txt') as a:
lines = a.read().splitlines()
tall = []
for i in range(101):
tall.append(i)
for (i,t) in zip(lines,tall):
if i != t:
print("Does not match")
break
#else:
print("Match")
break
我有这么远的问题是,如果我打印的行会启动与[“结尾是”],因此不匹配其他列表。
我该如何解决这个问题?这是一个更简单的方法来完成整个过程?
谢谢。
答
splitlines()
通过考虑\n
或换行符作为分隔符来读取您的python文件。但是在程序的第一步写入的文件在逻辑需要的match
之后并不会在每个数字后面有\n
。因此,这个问题。
以下修改后的代码正常工作。在写入文件时,我删除了,
并将其更改为\n
。另外检查条件i!=t
应该是i!=str(t)
f=open("tall.txt", "w")
for i in range(101):
f.write(str(i) + "\n")
f.close()
with open('tall.txt') as a:
lines = a.read().splitlines()
tall = []
for i in range(101):
tall.append(i)
for (i,t) in zip(lines,tall):
if i != str(t):
print("Does not match")
break
#else:
print("Match")
break
+0
非常感谢。解决了! – Pontius
值的顺序是否重要?例如'[1,2]'和'[2,1]'是一样的吗?如果没关系,为什么不直接做一个数组交集? –
是的,订单很重要。想要检查他们是否在同一个订单。 – Pontius