4

わかりました、これは奇妙です。理解できず、非常にイライラしています。

  1. 宣言して配列(リスト)
  2. 最初の行を文字列 (銘柄記号) で開始します
  3. 必要な取引日数の残りにゼロを入力します。
  4. 「ポジション」マトリックスの特定の要素に、その日に購入または売却される株式の数を入力したいと考えています。また、1 つの要素だけではなく、列全体が入力されます。

    # Initiating position matrix
    positions = []
    # Initiating a row of zeros (to fill position matrix later)
    empty_row = []
    # Symbols is a list of symbols that will be traded.
    for symbol in symbols:
        empty_row.append(0)
    
    # First row of positions will be symbols
    positions.append(symbols)
    
    # All other rows will be empty_rows
    for day in timestamps:
        positions.append(empty_row)
    

    次に、入力する必要がある「位置」の要素を決定します。10 行 1 列 (0 からのインデックス) の要素を考えてみましょう。私もです:

    ポジション[10][1] = 100

    私が得た結果は、列1全体が100でいっぱいです。エレメントだけではありません。私は何を間違っていますか?

4

1 に答える 1

4

同じ 空のリストを何度も追加しています:

for day in timestamps:
    positions.append(empty_row)

新しい行ごとに新しい「空の」リストを作成する必要があります。

for day in timestamps:
    positions.append([0]*len(symbols))

それをすべてリスト内包表記に入れることができるので、コード全体は次のようになります。

positions = [symbols]
positions.extend([[0]*len(symbols) for day in timestamps])
于 2012-12-26T14:30:00.003 に答える