4

たとえば、文字列配列があります。

a = ['123', '456', '789']

それを分割して2次元のchar配列を形成したいと思います。

b = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

使っています

[[element for element in line] for line in array]

私の目標を達成するために、しかしそれを読むのは簡単ではないことがわかりました、それを行うための組み込み関数または読みやすい方法はありますか?

4

5 に答える 5

10

の仕事のように見えmapます:

>>> a = ['123', '456', '789']
>>> map(list, a)
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

関連ドキュメント:

于 2012-12-11T03:08:17.233 に答える
4

あなたは次のようなことをすることができます:

first_list = ['123', '456', '789']
other_weirder_list = [list(line) for line in first_list]

あなたの解決策はそれほど悪くはありませんが、あなたはこのようなことやmaparashajiiによる提案をするかもしれません。

于 2012-12-11T03:07:24.730 に答える
3

map(list, array)それをする必要があります。

于 2012-12-11T03:08:29.017 に答える
1

あなたが使用することができますmap

>>> a
['123', '456', '789']
>>> map(list, a)
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

なぜこれを行う必要があるのか​​はわかりませんが(文字列内の特定の1文字を編集する予定がない限り)。文字列はリストと同様に動作します。

于 2012-12-11T03:08:18.817 に答える
0

最初に試しe.split('')ましたが、取得しValueError: empty separatorます。

これを試して:

a = ['123', '456', '789']
b = [list(e) for e in a]
b
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
于 2013-07-10T16:35:17.617 に答える