【发布时间】:2012-03-22 19:30:15
【问题描述】:
我正在编写一个代码,它将文件 1(单列条目)与文件 2(3 列条目)进行比较,并根据第一列从文件 2 中获取匹配的记录。问题是它只评估循环一次。
文件1:
ABC
DEF
JKL
文件2:
IJK,123,SDF
ABC,456,HJK
QWE,876,GFT
JKL,098,HGF
.....
我的代码:
for entry in fh_file1:
mir = entry.strip('\n')
print(mir)
for row in fh_file2:
row_splt = row.split(',')
print(row_splt[0])
if mir in row_splt[0]:
print (row.strip('\n'))
else:
pass
该代码的结果:
只是文件1的第一个条目的匹配:
ABC 456 HJK
请帮帮我。
【问题讨论】:
-
为什么
if mir in row_splt[0]:不是if mir == row_splt[0]:? -
这类问题经常被问到,但我很难找到一个好的副本。
-
@tauran 这甚至不一样。一个检查完全相等,另一个是子字符串/元素(取决于类型,没有仔细查看代码)搜索。
-
@delnan:我知道。但我不明白他为什么在这里使用
in。 -
我在您的数据中看不到任何逗号。为什么你的
string.split()设置为逗号分隔?
标签: python if-statement for-loop nested-loops