55048


python3についての質問です。  
list()と[]は同じものだと思っていたのですが、

[code]

    a = [map(int,input().split())]
    for i in range(len(a)):
        print(a[i])
    
    b=list(map(int,input().split()))
    for i in range(len(b)):
        print(b[i])
    
[/code]

を実行すると

[code]

    >>>
    123
    <map object at 0x036D88D0>
    123
    123
    >>>
    
[/code]

という異なる結果になりました。  
原理的なことを教えてもらえると助かります。


CC BY-SA 4.0
2019-05-17T08:25:45.687
55047
2019-05-17T08:46:58.307
34251
question
python python3
Pythonのリストについて


`[]`はその中に要素を並べてリストを作ることができます。したがって、前者は単一の`map object`からなるリストになります。

一方`list`は`list()`とすれば空のリストを、`list(iterable)`のようにすれば`iterable`(今回の場合`map
object`)と同じ要素を持つリストを返します。

リスト自体も`iterable`ですので、次の結果を見ると理解しやすいかもしれません。

[code]

    In [4]: a = [[1,2,3]]
    
    In [5]: b = list([1,2,3])
    
    In [6]: a
    Out[6]: [[1, 2, 3]] # [1,2,3]を要素に持つリスト
    
    In [7]: b
    Out[7]: [1, 2, 3]
    
[/code]


CC BY-SA 4.0
2019-05-17T08:46:58.307
55048
2019-05-17T08:46:58.307
13199
55047
answer