-3

誰でも私が得ている出力を説明してください。最初は変数listsは空白ですが、data[i]変数に10追加するlists[i]と、

List:  [[10], [10, [10]]

この長いリストがどのように登場するのかわかりません。私はPythonの動作を追跡するのが初めてです。ここにコードがあります

data = [10, 20, 30]
list1 = list2 = list3 = list()
lists = [list1, list2, list3]

for i in range(len(data)):
  lists[i].append(data[i])
  print '-------------------'
  print 'at %s' %(i)
  print '  List:  %s' % (lists)
  print '  Data: %s' %  (data[i])

そしてレスポンス

-------------------
at 0
 List:  [[10], [10], [10]]
 Data: 10
-------------------
at 1
List:  [[10, 20], [10, 20], [10, 20]]
Data: 20
-------------------
at 2
List:  [[10, 20, 30], [10, 20, 30], [10, 20, 30]]
Data: 30
4

2 に答える 2

1

これは無効な質問です (提供された他のコードの出力が含まれています)。おそらく、インタープリターで 2 番目の (初期化後の) 部分を複数回実行しています。コードの出力は次のようになります

-------------------
at 0
  List:  [[10], [10], [10]]
  Data: 10
-------------------
at 1
  List:  [[10, 20], [10, 20], [10, 20]]
  Data: 20
-------------------
at 2
  List:  [[10, 20, 30], [10, 20, 30], [10, 20, 30]]
  Data: 30

Python 2.7 でテスト済み

「複数の追加」の側面は、この質問で既に回答されているため、この情報を複製しません。

于 2013-09-21T07:48:19.880 に答える
0

出力が投稿した完全なコードからのものではないことを確認してください。追加先のリスト (list1、list2、list3、list[i] のすべての名前がそれを参照していますが、リストは 1 つしかありません) は、ループの実行ごとに新しく作成されていないように見えます。投稿したコードの2行目と3行目。

于 2013-09-21T07:49:44.333 に答える