4

これはだまされいるに違いありませんが、この質問の既存のインスタンスが見つかりませんでした...

Pythonでイテラブルを配列に変換する最も簡単な方法は何ですか(理想的には、何もインポートせずに)?

: 理想的には、入力が配列の場合、それを複製すべきではありません (ただし、これは必須ではありません)。

4

5 に答える 5

17

配列の意味によって異なります。リストなどではなく、本当に配列を意味する場合は、配列が同じ (基本) 型の要素のコンテナーであることを認識する必要があります ( http://docs.python.org/library/array.htmlを参照)。すべてのイテラブルを配列に変換できるわけではありません。リストを意味する場合は、次のことを試してください。

l = list(iterable)
于 2011-06-22T22:43:29.377 に答える
4

「配列」がリストを意味する場合は、次のようにします。

list(foo)
于 2011-06-22T22:40:25.077 に答える
2

どう[e for e in iterable]ですか?

そして、追加の要件を満たすには:

iterable if isinstance(iterable,list) else [e for e in iterable]

于 2011-06-22T22:39:00.390 に答える
2

list関数は iterable を引数として取り、リストを返します。次に例を示します。

>>> rng = xrange(10)
>>> rng
xrange(10)
>>> list(rng)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

これは、リストのリストも作成しません。

>>> list(list(rng))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
于 2011-06-22T22:41:00.697 に答える
0

基本的に、Python では配列とリストはほぼ同じものです。したがって、リスト内包表記がその仕事をします:

  ary = [ i for i in yourthing ]
于 2011-06-22T22:44:36.433 に答える