2017-01-30 5 views
0

ボードと単語を含むゲーム用の関数を作成しています。私はこの関数を設計しており、実際にループやリストメソッドを使って正しく実行できるかどうかはわかりません。 これは私が作成しています関数です。この機能でループを使用できますか?

def make_str_from_column(board, column_index): 
    """ (list of list of str, int) -> str 

    Return the characters from the column of the board with index column_index 
    as a single string. 

    >>> make_str_from_column([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 1) 
    'NS' 
    """ 
+1

ようになり、あなたの質問を理解することは非常に困難です。実際の関数の実装はどこですか?リストメソッドではどういう意味ですか? (私はあなたがリスト**の理解**を意味すると仮定していると仮定しています)また、StackOverflowは質問をコーディングするためだけであり、私たちはめったにうまくいきません。改善に関する質問は、http://codereview.stackexchange.comで尋ねる必要があります。 –

答えて

2

あなたが手紙を取得するためのオプションがいくつかあります。あなたはリスト内包

[sublist[column_index] for sublist in board] 

にこれを簡素化することができ、単純なループに

ret = [] 
for sublist in board: 
    ret.append(sublist[column_index]) 

を使用することができますまたはあなたが実際に各列を行いますzipを、使用することができ、その後、あなたはそれらの中から選択することができます。

list(zip(*board))[column_index] 

個人的に、私はリスト内包を選ぶだろう。あなたはしかし、あなたは単一の文字列に文字列のリストを組み合わせること''.joinを使用する必要があることを持っていたら

return ''.join([sublist[column_index] for sublist in board]) 
+0

私はリストの理解も良いと思います。しかし、この場合は、以前作成した関数を使用する必要があります。とにかくこの条件の下でzipを使用できますか?それを使うのはもっと難しいかもしれませんか? PD:私はジップオプションを知らなかった。 –

+0

@KennethRivadeneiraGuadamud 'zip'については、https://docs.python.org/3/library/functions.html#zipをご覧ください。 –

関連する問題