3 回答

TA贡献1811条经验 获得超5个赞
我的猜测是文件名都在那里,只是没有按照您期望的顺序。
文件名是字符串。它们根据字符串排序逻辑进行排序:想象将每个 0 替换为a ,将a
每个 1 替换为 a b
,将每个 2 替换为 ac
等等,现在考虑如何按字母顺序对字符串进行排序。普通的字符串排序不知道我们喜欢用最不重要的数字last来写数字。在普通的字符串排序中,它确实是1
, then 10
, then 11
——这类似于对字符串b
, then ba
, then进行排序bb
,这是正确的字典排序。它会持续很长时间才能到达任何以开头3
的单词(类似地,字典中以开头的单词d
比以b
)。
您可以研究执行“自然排序”的算法/包。或者,更可取的最佳做法是简单地修复文件命名约定:确保文件名中嵌入的数字都具有相同的位数,必要时使用前导零(001
、002
等)。

TA贡献1846条经验 获得超7个赞
这似乎值得怀疑。
self.find_min_fitness(i)
好吧,我建议你尝试这样的事情。
下面的目录包含编号的文件列表。
files = os.listdir("C:/Users/Danish/Documents/JavaScriptPrimerRepo/MyJSCodes")
for i in files:
print(i)
这是下面的示例输出。
00_BlankPage.html
01_DataType.html
02_LinkingExternalJsfile.html
02_Script.js
03_VariableMutation_cohersion.html
04_Operators.html
05_SampleCodeCalculatingBMI.html
注意:我在迭代之前将结果存储在单独的变量中,重要的是 fileName 首先以数字开头。

TA贡献1818条经验 获得超3个赞
我很确定问题出在函数self.find_min_fitness(i)
上。在列出前几个文件后,其中的某些部分必须导致程序中断。
文件按名称排序os.listdir()
。它优先1
于2
列出文件时,这就是为什么所有以开头的文件名1
都首先列出的原因。
作为解决方案:也许尝试注释掉self.find_min_fitness(i)
调用的这一行,看看问题是否仍然存在
添加回答
举报