digit循环中的变量for是列表中值的副本,而不是对其的引用。修改该值不会修改列表。(另外,正如其他人所指出的,您需要=操作员修改一个值,而不是==!)您可以通过以下两种不同的方式完成您的目标:使用枚举lst在循环中进行修改:def square_digits(num): lst = [int(x) for x in str(num)] for i, digit in enumerate(lst): lst[i] = digit **2 return lst或使用理解来构建和返回方块列表:def square_digits(num): return [int(x)**2 for x in str(num)]