リストを理解するのに問題があります:
mList = []
def func1(mList):
mList.append("1")
return
func1()
print mList
リストはミュータブルなのでわかるのですが、関数で編集するとメインリストも編集されてしまいます。私が取り組んでいるプログラムでは、これは「保存ファイル」として使用している 1 つのリストで発生していますが、「value_blacklist」として使用している 2 番目のリストは、編集/追加後に保存されません。
問題が発生している実際のコードの問題部分を含めました。
def func04(feedback, test_list, value_blacklist, upper_limit=6):
if value_blacklist == []:
value_blacklist = blacklist_gen(length)
import random
new_list = []
for index in list(range(0, len(feedback))):
if feedback[index] == 0: #This value is correct, leave it
new_list.append(test_list[index])
elif feedback[index] == 2:
value_blacklist = full_blacklist(test_list[index], value_blacklist)
new_list.append(0)
elif feedback[index] == 1:
value_blacklist[index].append(test_list[index])
new_list.append(0)
for index in list(range(0, len(feedback))):
if new_list[index] == 0:
new_list[index] = pick_new(index, value_blacklist, upper_limit)
return new_list
next_guess = lambda: func04(feedback(), save_game[-1], value_blacklist, save_game[0])
助けてくれてありがとう、私はこれに本当に混乱しています。