Hi guys,
I'm newbie in Python (but not a newbie developer). I'm facing a
problem with a bidimensional list (list of lists) containing
dictionaries. I don't know if I didn't understand how lists and
dictionaries work in Python or if there is a mistake in my code that
I can't see. In the code I'm printing the list values just after the
assignment and they are ok, but when I try to print the list at the
end of the function the values are different (repeated). Below is
the code and the result in Python 3.4.0. Could you guys please help
me with that?
Thanks a lot!
Rafael
def preencherTabuleiroInicial():
tabuleiro = [[None for x in range(8)] for y in range(8)]
peca = {}
for lin in range(8):
for col in range(8):
if lin == 0 or lin == 1 or lin == 6 or lin == 7:
if lin == 0 or lin == 1:
peca['cor'] = 'b'
elif lin == 6 or lin == 7:
peca['cor'] = 'p'
if lin == 1 or lin == 6:
peca['nome'] = 'p'
elif col == 0 or col == 7:
peca['nome'] = 't'
elif col == 1 or col == 6:
peca['nome'] = 'c'
elif col == 2 or col == 5:
peca['nome'] = 'b'
elif col == 3:
peca['nome'] = 'd'
else:
peca['nome'] = 'r'
tabuleiro[lin][col] = peca
print(str(lin) + ' ' + str(col) + ' ' + str(tabuleiro[lin][col]))
print()
print(tabuleiro)
preencherTabuleiroInicial()
0 0 {'nome': 't', 'cor': 'b'}
0 1 {'nome': 'c', 'cor': 'b'}
0 2 {'nome': 'b', 'cor': 'b'}
0 3 {'nome': 'd', 'cor': 'b'}
0 4 {'nome': 'r', 'cor': 'b'}
0 5 {'nome': 'b', 'cor': 'b'}
0 6 {'nome': 'c', 'cor': 'b'}
0 7 {'nome': 't', 'cor': 'b'}
1 0 {'nome': 'p', 'cor': 'b'}
1 1 {'nome': 'p', 'cor': 'b'}
1 2 {'nome': 'p', 'cor': 'b'}
1 3 {'nome': 'p', 'cor': 'b'}
1 4 {'nome': 'p', 'cor': 'b'}
1 5 {'nome': 'p', 'cor': 'b'}
1 6 {'nome': 'p', 'cor': 'b'}
1 7 {'nome': 'p', 'cor': 'b'}
2 0 None
2 1 None
2 2 None
2 3 None
2 4 None
2 5 None
2 6 None
2 7 None
3 0 None
3 1 None
3 2 None
3 3 None
3 4 None
3 5 None
3 6 None
3 7 None
4 0 None
4 1 None
4 2 None
4 3 None
4 4 None
4 5 None
4 6 None
4 7 None
5 0 None
5 1 None
5 2 None
5 3 None
5 4 None
5 5 None
5 6 None
5 7 None
6 0 {'nome': 'p', 'cor': 'p'}
6 1 {'nome': 'p', 'cor': 'p'}
6 2 {'nome': 'p', 'cor': 'p'}
6 3 {'nome': 'p', 'cor': 'p'}
6 4 {'nome': 'p', 'cor': 'p'}
6 5 {'nome': 'p', 'cor': 'p'}
6 6 {'nome': 'p', 'cor': 'p'}
6 7 {'nome': 'p', 'cor': 'p'}
7 0 {'nome': 't', 'cor': 'p'}
7 1 {'nome': 'c', 'cor': 'p'}
7 2 {'nome': 'b', 'cor': 'p'}
7 3 {'nome': 'd', 'cor': 'p'}
7 4 {'nome': 'r', 'cor': 'p'}
7 5 {'nome': 'b', 'cor': 'p'}
7 6 {'nome': 'c', 'cor': 'p'}
7 7 {'nome': 't', 'cor': 'p'}
[[{'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor':
'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't',
'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}], [{'nome':
't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'},
{'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor':
'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}], [None, None, None,
None, None, None, None, None], [None, None, None, None, None, None, None,
None], [None, None, None, None, None, None, None, None], [None, None, None,
None, None, None, None, None], [{'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor':
'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't',
'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome':
't', 'cor': 'p'}], [{'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'},
{'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor':
'p'}, {'no