【发布时间】:2014-10-22 11:31:57
【问题描述】:
我有一个list 和一个dict。
一旦我进入嵌套的for 循环,第一个for 循环就不会继续遍历这些值。这只允许我迭代一次,无论我的 if 语句是否成功。
for OldRecord in StripOldList:
OldSplitRec = OldRecord.split('_')
value1 = OldSplitRec[1]
value2 = OldSplitRec[2]
value3 = OldSplitRec[3]
value3 = OldSplitRec[4]
value3 = OldSplitRec[5]
diffdict = {}
for SomeRec in DiffSplitText:
key1, key2, key3, key4, key5= SomeRec.strip().split('_')
FinalLabel = key1+"_"+key2+"_"+key3+"_"+key4+"_"key5+"_"+key6
diffdict[key1,key2,key3,key4,key5.strip()] = FinalLabel
IsNewEdition = True
IsNewVersion = True
IsNewFileType = True
if (value1 == key1 and value2 == key2):
IsNewFileType = False
if (value3 >= key3):
IsNewEdition = False
if (value5 >= key5):
IsNewVersion = False
if (IsNewFileType == True):
print "No Match"
elif (IsNewEdiion == True):
print "Found new edition"
link1.write(SomeRec)
elif (IsNewVersion == True):
print "Found new version"
link2.write(SomeRec)
然后,例如,我将value1 与key1 或value5 与key6 进行比较。我的if 语句有效,但只执行一次,所以这是我唯一关心的部分。
读取的文件示例如下:
Ex_299_Jabba_1993_09_20150805
所以如果旧列表有:
Ex_299_Jabba_1993_09_20130805
Ex_298_Jabba_1993_09_20130805
Ex_297_Jabba_1993_09_20130805
而新词典有:
Ex_299_Jabba_1993_09_20140805
Ex_298_Jabba_1994_09_20130805
Ex_297_Jabba_1993_09_20130805
它应该识别字典中更新的文件名并将它们写入正确的位置(用**强调)。
Ex_299_Jabba_1993_09_**20140805**
Ex_298_Jabba_**1994**_09_20130805
【问题讨论】:
-
向我们展示工作,完整的示例代码。
-
什么是
DiffSplitText?如果您想比较所有可能的配对,请查看itertools.combinations。 -
DiffSplitText 只是它从中提取文件名的文本文件
标签: list python-2.7 for-loop dictionary nested-loops