[解決済み] Pythonです。for x in A[1:]はどういう意味ですか?[重複あり]
質問
WikipediaからKadaneのアルゴリズムを理解しようとしていたところ、これを見つけました。
def max_subarray(A):
max_ending_here = max_so_far = A[0]
for x in A[1:]:
max_ending_here = max(x, max_ending_here + x)
max_so_far = max(max_so_far, max_ending_here)
return max_so_far
私はPythonに精通していません。この構文が何をするのかググってみましたが、何と呼ばれているのかわからず、正しい答えが見つかりませんでした。しかし、私は考えました。
A[1:]
を省略したのと同じです。
A[0]
と思ったので
for x in A[1:]:
と同じです。
for(int i = 1; i < A.length; i++)
Javaでは
しかし
for x in A[1:]:
から
for x in range(1,len(A))
しかし、私は間違った結果を得ました
馬鹿な質問で申し訳ないのですが、他に答えが見つからないのです。この構文が何をするもので、何と呼ばれているのか、どなたか教えていただけませんか?また、次の構文と同じものを教えてください。
for x in A[1:]:
をJavaで表示できますか?
どのように解決するのですか?
これは アレイスライス の構文があります。このSOの質問を参照してください。 Pythonのスライス表記について説明します。 .
リストの場合
my_list
のオブジェクト、例えば
[1, 2, "foo", "bar"]
,
my_list[1:]
は、0-インデックスで始まるすべての要素の浅いコピーリストと等価です。
1
:
[2, "foo", "bar"]
. だから、あなたの
for
文はこれらのオブジェクトを繰り返し処理します。
for-iteration 0: x == 2
for-iteration 1: x == "foo"
for-iteration 2: x == "bar"
range(..)
はインデックス(整数)のリスト/ジェネレータを返すので、for文は整数を繰り返し処理することになります。
[1, 2, ..., len(my_list)]
for-iteration 0: x == 1
for-iteration 1: x == 2
for-iteration 2: x == 3
つまり、この後者のバージョンでは
x
をリストへのインデックスとして使用します。
iter_obj = my_list[x]
.
また、反復処理のインデックスが必要な場合(例えば、現在のオブジェクトの "count" のために)、もう少し Pythonic なバージョンとして、次のようにすることもできます。
enumerate
:
for (i, x) in enumerate(my_list[1:]):
# i is the 0-based index into the truncated list [0, 1, 2]
# x is the current object from the truncated list [2, "foo", "bar"]
このバージョンは、将来的に
my_list
を他のものに変更した場合、0-ベースインデックスの実装に依存しないため、スライス構文をサポートする他の反復処理可能な型でも動作する可能性が高くなります。
関連
-
Python Decorator 練習問題
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み] スライス表記を理解する