我對Python比較陌生。 我想拿出一個函數,該函數接受一個列表,在該列表中隨機添加+1值,然後將修改後的值作爲新索引放入一個新列表。在python中複製列表
舉例來說,如果我有
blank=[]
list_one=[1,2,3,4,5] #
可能的結果可能是
blank=[ [1,2,3,4,5], [1,3,3,4,5],[1,3,3,4,6],[2,3,3,4,6],[2,4,3,4,6] ]
那麼該功能將空白[0],複製並修改它,並將它作爲空白[1 ]。類似地,函數採用坯件[1],其複製和修改它,並將其返回作爲空白[2]
這是我的代碼:
import random
list_one=[1,2,3,4,5]
def new_function(value):
for i in range(1,value):
list_copy=list_one[:]
blank.append(list_copy)
x=random.choice(blank[i])
y=blank[i].index(x)
blank[i][y]=x+1
return blank
print new_function(4)
"""Yields [ [1,2,3,4,5],[1,3,3,4,5],[2,2,3,4,5],[1,2,4,4,5] ]
(this is the list, blank)"""
我的問題是,空白[1],空白[2]和空白[3]都是空白[0]的修改,當每個索引列表應該是前一個索引列表的修改。
我在做什麼錯在這裏?
作爲一個說明,我已經使用'列表(SEQ)'複製列表好得多總是發現讀取比'seq [:]'。後者對於新用戶可能有點神祕,並且它們是相同的。 –
好的,謝謝你的信息。但是爲什麼我的函數只是在第一個列表中創建空白的修改副本? –
空白[1]必須是空白[0]的修改後的副本,空白[2]必須是空白[1]的修改後的副本,依此類推。但我的功能只是每次複製空白[0]並隨機修改一個值 –