我不想在没有给你一个正确答案的情况下对你喋喋不休,所以如果你不关心良好的编码实践,请跳过。
不要使用像list和string这样的变量名,因为在list的情况下,这是您正在创建的类型的名称。事实上,这就是你如何创建一个空实例的类型:something=list() # this is an empty list!
这会使参考list[2]或类似的东西变得混乱。所以很明显没有出现任何错误,但是为了可读性,请尝试给出有意义的变量名。
好吧,我已经说完了,你要找的代码是st='Did the quick brown fox really jump over the fence'.split()
c=[len(i) for i in st] # gives [3, 3, 5, 5, 3, 6, 4, 4, 3, 5]
counts=[0]*max(c) # gives [0, 0, 0, 0, 0, 0]
for i in range(len(c)):
counts[c[i]-1]+=1 # adds 1 to each index of c[i] (we subtract 1 because of 0-based indices)
print(counts) # gives us the answer: [0, 0, 4, 2, 3, 1]
我把这些步骤中的一些做得比你提出的挑战更为先进,如果这恰好是你的目标的话,我会阻止你在作业中使用这些步骤。在这个解决方案中使用的一些工具至少比您正在使用的工具要先进一点,但是如果您只是为了理解代码而学习Python,那么我希望这将是最有启发性的,可能会让您想到一些非常酷的东西,您可以用Python简明地做。尽管如此ÿ