5

Pythonのこれら2つのステートメントの違いは何ですか?

var = foo.bar

var = [foo.bar]

var を foo.bar を含むリストにしていると思いますが、よくわかりません。また、これが動作であり、foo.bar が既にリストである場合、それぞれの場合に何が得られますか?

例: foo.bar = [1, 2] の場合、これを取得できますか?

var = foo.bar #[1, 2]

var = [foo.bar] #[[1,2]] where [1,2] is the first element in a multidimensional list
4

4 に答える 4

14

[]空のリストです。

[foo.bar]は、リストの最初の項目として新しいリスト ( []) を作成foo.barしています。これは、そのインデックスによって参照できます。

var = [foo.bar]
var[0] == foo.bar # returns True 

したがって、あなたの割り当てfoo.bar = [1,2]は正確に正しいと推測します。

まだ行っていない場合は、Python 対話型インタープリターでこの種のことを試してみることをお勧めします。それはそれをかなり簡単にします:

>>> []
[]
>>> foobar = [1,2]
>>> foobar
[1, 2]
>>> [foobar]
[[1, 2]]
于 2010-09-21T22:06:02.983 に答える
3

はい、1 つの要素 foo.bar を含むリストを作成しています。

foo.bar が[1,2]の場合、実際に [[1,2]] が得られます。

例えば、

>> a=[]
>> a.append([1,2])
>> a[0] 
[1,2]
>> b=[[1,2]]
>> b[0]
[1,2]

その正確な例をもう少し詳しく説明するには、

>> class Foos:
>>   bar=[1,2]
>> foo=Foos()
>> foo.bar
[1,2]
>> a=[foo.bar]
>> a
[[1,2]]
>> a[0]
[1,2]
于 2010-09-21T22:08:31.693 に答える
1

var を foo.bar を含むリストにしていると思いますが、よくわかりません。また、これが動作であり、foo.bar が既にリストである場合、それぞれの場合に何が得られますか?

  • はい、新しいリストを作成します。

  • がすでにリストである場合foo.barは、1 つのリストを含む単純なリストになります。

    h[1] >>> l = [1, 2]
    h[1] >>> [l]
    [[1, 2]]
    h[3] >>> l[l][0]
    [1, 2]
    
于 2010-09-21T22:08:12.997 に答える
0

これは、リスト/配列の最初の項目である foo.bar を持つものの配列/リストであることを意味します。

于 2010-09-21T22:40:18.170 に答える