Skip to main content

编程中常见错误的例子(正确写法) (Part 4)

以下代码展示了一些常见的 Python 编程错误的正确写法示例。

代码 (common_mistakes_part4_correct.py)

# 示例 1: 正确地在循环中构建列表的列表
matrix = []
for i in range(3):
row = [] # 每次迭代创建一个新的row
row.append(i)
matrix.append(row)
print(matrix)

# 示例 2: 理解列表推导式中的作用域和延迟绑定闭包
values = [lambda x, i=i: x * i for i in range(3)] # i=i可以这样理解:是lambda被创建时外部的i被复制到新的i里了。
result = [f(2) for f in values]
print(result)

# 示例 3: 使用 'sorted' 并理解它返回新列表
original_list = [3, 1, 2]
sorted_list = sorted(original_list)
print(sorted_list)
print(original_list)

# 或者,修改原始列表:
original_list.sort()
print(original_list)

# 示例 4: 使用不可变对象作为字典键
my_dict = {(1, 2, 3): "value"}
print(my_dict)

# 示例 5: 处理类属性中的可变状态
class Counter:
def __init__(self):
self.count = [] # 实例属性,每个实例独有

def add(self, value):
self.count.append(value)

counter1 = Counter()
counter2 = Counter()
counter1.add(1)
counter2.add(2)
print(counter1.count)
print(counter2.count)