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'}, {'nome'
 : 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}, {'nome': 't', 'cor': 'p'}]]
>>> 
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to