【发布时间】:2017-01-08 07:47:56
【问题描述】:
昨天,我试图用python解决一个问题,我遇到了一件很奇怪的事情:
# create matrix
for i in range(N):
tmp.append(0)
for i in range(N):
marker.append(tmp)
# create sum of 2 first cards
for i in range(N) :
for j in range(N):
if i != j and marker[i][j] == 0:
comCard.append(deck[i]+deck[j])
taken[deck[i]+deck[j]] = [i,j]
marker[i][j] = 1
marker[j][i] = 1
我的想法是我想计算一副牌中每对牌的所有可能总和(这些牌需要不同),所以我认为有了标记,我可以避免再次计算相同的 2 张牌。例如:甲板[1]+甲板[2]和甲板[2]+甲板[1]。但是这些行并没有像他们应该做的那样工作:
marker[i][j] = 1
marker[j][i] = 1
【问题讨论】:
-
所有行都指向同一个列表;你用
tmp初始化的那个。 This stackoverflow.com/questions/5957341/python-list-confusion 的可能重复项。 -
我的男人!我只是一个初学者感谢所有的帮助