7

Pythonで添字0ではなく添字1で配列を開始するにはどうすればよいですか?

基本的に、Pythonでこの問題を解決します。

4

4 に答える 4

12

本当にこれを行いたい場合は、リストをラップするクラスを作成し、__getitem____setitem__を 1 ベースにすることができます。例えば:

def __getitem__(self, index):
  return self.list[index-1]

def __setitem__(self, index, value):
  self.list[index-1] = value

ただし、Python リストの柔軟性を完全に引き出すには、スライス、削除などのサポートを実装する必要があります。一度に 1 項目ずつリストを簡単に表示したい場合は、これで十分です。 '

シーケンスまたはマッピングのように機能するカスタム クラスの作成の詳細については、Data Model の Python ドキュメントを参照してください。

于 2012-07-30T17:59:15.503 に答える
7

enumerate() メソッドを使用できます

a = ['a', 'c', 'v', 's']
for i,v in enumerate(a, 1):
    print i, v

1 a
2 c
3 v
4 s
于 2012-07-30T18:44:40.910 に答える
6

+1 に最大. あなたが試すことができる他の何かがあります:

Noneリストのインデックス 0 にa を追加するだけです。これで機能が得られるはずです。Noneリストを MATLAB に渡すときに先頭を切り取ることを忘れないでください。

于 2012-07-30T18:05:09.737 に答える