我覺得我在這裏做一些非常愚蠢的。也許我太累了。更改多維列表中一行的值會更改所有行嗎?
我試圖做一個真值表的大小取決於「數」 - 爲表變量的數目。
table = [[None] * int(pow(2, count))] * count
in_a_row = pow(2, count)/2
iterator = 0
for i in range(count):
for j in range(int(pow(2, count))):
print(str(i) + ' ' + str(j), end = '')
if iterator < in_a_row:
table[i][j] = 'T'
print(' T')
elif iterator == 2 * in_a_row:
table[i][j] = 'T'
iterator = 0
print(' T')
else:
table[i][j] = 'F'
print(' F')
iterator += 1
print(table)
in_a_row /= 2
iterator = 0
它輸出這樣的:
0 0 T
0 1 T
0 2 F
0 3 F
[['T', 'T', 'F', 'F'], ['T', 'T', 'F', 'F']]
1 0 T
1 1 F
1 2 T
1 3 F
[['T', 'F', 'T', 'F'], ['T', 'F', 'T', 'F']]
你可以看到什麼我在一個迭代中設置什麼是所有「行」遙相呼應。任何人都可以告訴我這裏有什麼問題嗎?
我當然期待這樣的:
[['T', 'T', 'F', 'F'], ['T', 'F', 'T', 'F']]
那好吧,這是有道理的,我想。就像一個指針差不多。我相信你缺少一個[在那裏,我不得不真正使用在第一部分相同的技術來得到它的工作,但'表= [[[在範圍內無]爲_(INT(POW(2,計數) ))] for _ in range(count)]'似乎工作。謝謝! – CMahaff
@CMahaff - 對不起,我有一個額外的']'在那裏。 (這就是我沒有測試的結果)。是的,這就像一個「指針」。蟒蛇稱他們爲「參考」,但這主要是語義... – mgilson