5 svar
166 visningar
be5612 är nöjd med hjälpen
be5612 148
Postad: 3 mar 18:51

Tre i rad python

Hej! Jag ska programmera tre i rad i python med olika storlerkar på brädan 3x3 5x5 och 7x7

jag får mina brädor som listor i en lista till exempel

[['0', '0', '0'], ['0', '0', '0'], ['0', '0', '0']]

hur kan jag göra så att jag får varje lista på egen rad till exempel

[['0','0','0',],
 ['0','0','0',],
 ['0','0','0',]]

detta är min kod

def board_size(board):
    
    if board == 3 or board == 5  or board == 7:
        x = [['0']*board]*board

    return x
Laguna 14271
Postad: 3 mar 19:25

Gå igenom brädet med 'for' och skriv ut en rad i taget med print. 

Lindehaven 700 – Lärare
Postad: 3 mar 23:44
import pprint
pprint.pprint(board_size(3))
Laguna 14271
Postad: 4 mar 07:13

Det finns ett problem med koden som genererar brädet. Titta här:

>>> l = [['0']*3]*3
>>> l
[['0', '0', '0'], ['0', '0', '0'], ['0', '0', '0']]
>>> l[1][1]='1'
>>> l
[['0', '1', '0'], ['0', '1', '0'], ['0', '1', '0']]

Lindehaven 700 – Lärare
Postad: 4 mar 17:53
Laguna skrev:

Det finns ett problem med koden som genererar brädet.

Problemet kan lösas genom att skapa en ny lista och lägga den i listan med listor.

def board_size(board):
    x = []
    if board in [3, 5, 7]:
        for i in range(board):
            x.append(['0']*board)
    return x
be5612 148
Postad: 4 mar 18:16
Lindehaven skrev:
Laguna skrev:

Det finns ett problem med koden som genererar brädet.

Problemet kan lösas genom att skapa en ny lista och lägga den i listan med listor.

def board_size(board):
    x = []
    if board in [3, 5, 7]:
        for i in range(board):
            x.append(['0']*board)
    return x

Tusen tack för hjälpen! Den fungerar utmärkt :)

Svara Avbryt
Close