seq_sum = []
for i in range(len(sequence)):
seq_sum[i] = sequence[i] + inv_sequence[i]
print (seq_sum)
このコードを実行しようとすると、リスト割り当てインデックスが範囲外です。どのように問題を解決できますか? シーケンスとinv_sequenceは整数の配列です。Pythonエラー:インデックスの範囲外
seq_sum = []
for i in range(len(sequence)):
seq_sum[i] = sequence[i] + inv_sequence[i]
print (seq_sum)
このコードを実行しようとすると、リスト割り当てインデックスが範囲外です。どのように問題を解決できますか? シーケンスとinv_sequenceは整数の配列です。Pythonエラー:インデックスの範囲外
seq_sum[i]
は、seq_sum
リストが空であるため、IndexError
を発行します。あなたは代わりにappend
を使用する必要があります。
seq_sum = []
for i in range(len(sequence)):
seq_sum.append(sequence[i] + inv_sequence[i])
print(seq_sum)
をあなたはリストの内包表記を使用してきれいコードで同じ結果を得ることができます。
seq_sum = [seq_elem + inv_elem for seq_elem, inv_elem in zip(sequence, inv_sequence)]
ます。またmap
を使用することができますが、いくつかは、その読みやすさを主張するだろう:
import operator
seq_sum = list(map(operator.add, sequence, inv_sequence))
seq_sum
を空のリストと宣言しました。 0
以外の位置で試してみると、IndexError
になります。
リストを拡大すると、実質的にappend
ing、extend
ingまたはslice
の割り当てが行われます。 アクセスエレメントのため、これについてはseq_num.append
が最善の方法です。
seq_sum[i] = sequence[i] + inv_sequence[i]
は、代わりに次のように変更します。:ある
あなたの質問に関係のない
seq_sum.append(sequence[i] + inv_sequence[i])
が、 '範囲(LEN(シーケンス))は、'ここでアンチパターンのビットです。 'zip'組み込み:' seq_item、inv_seq_item for zip(sequence、inv_sequence):... '(@ DeepSpaceの解説を参照してください)を調べてください。 –
@decezeちょうど 'range()'がここで処理されることを実現しました。 – Torxed