私は-
を印刷する" "
のすべてのインスタンスを変異させるしようとしています:私は、単に新しい行にリスト内のリストを表示する関数を作ることによって開始しました:(のpython 3)forループせずにリスト内のリストを変異
def print_board(b):
print("\n".join(map(lambda x:"".join(map(str, x)),b)))
EX:
>>> print_board([[1,2,3],[2,3,4,5],[2,3,4]]
123
2345
234
それから" "
が-
にリストにあった各インスタンスを変異させるために、この類似の方法を使用しようとした:
def is_empty(b0):
if b0 == " ":
return "-"
else:
return b0
def empty_space(b):
list(map(lambda x: list(map(is_empty, x)), b))#empty_space just mutates b
def check(b):
_board = empty_space(b)
return print_board(_board) #check just prints the mutated list b
と私は例えばこれを行うにはcheck(b)
を望んでいたのでしょう:
>>> check([[" ",3,4],[5,6,3],[" ", " ", " "]])
-34
563
---
しかし、私はエラーを取得しています。マップとラムダの代わりに再帰を使用しても構いませんが、これらの関数のforループは使いたくありません。
'empty_space'はリストを返していません。また、 'return print_board(_board)'は 'None'を返すでしょう。あなたは単にそれを省略して' print_board(_board) 'を実行するだけです。 –
私は 'empty_space'関数も参照しています。作成しているリストを返さないので、' None'が返されます。私たちはそれに着いている間、あなたが得ているエラーを指定し、Pythonが提供するトレースバックを投稿してください。 –
ああ私はそれが正しく変異されたことを確認するために別の定義を作った理由は何も返さないために空のスペースが必要です – pewnienewbie