【发布时间】:2022-01-25 07:34:22
【问题描述】:
我想生成同一句子的 100 个副本的列表,每个副本中修改一个字符。我目前正在学习python,但我不明白为什么会这样:
def generate_copy(seq):
copies = [seq for i in range(100)]
for copy in copies:
copy[random.randint(0, len(seq) - 1)] = random.choice(char_list)
print(''.join(copy))
return copies
修改所有副本。我想得到这样的东西:['AAAB', 'BAAA', 'ZAAA', ...],就像它们彼此独立,但我得到:['AAAB', 'ZAAB', 'ZCAB' , ...]。我该怎么做?
【问题讨论】:
-
你认为
[seq for i in range(100)]会做什么? -
生成100个seq副本的列表
-
不:它是 100 次引用对同一个列表,这应该可以解释您所看到的行为。