Stavo cercando di capire l'algoritmo di Kadane da Wikipedia, quando ho trovato questo:Python: cosa significa x in A [1:] significa?
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
Non ho dimestichezza con Python. Ho provato a google cosa fa questa sintassi ma non sono riuscito a trovare la risposta giusta perché non sapevo come si chiamava. Ma, ho pensato A[1:]
è l'equivalente di omettere A[0]
, così ho pensato for x in A[1:]:
è equivalente a for(int i = 1; i < A.length; i++)
in Java
Ma, dopo aver cambiato for x in A[1:]:
a for x in range(1,len(A))
, ho ottenuto il risultato sbagliato
Scusate se questa è una domanda stupida , ma non so dove altro trovare la risposta. Qualcuno può dirmi cosa fa questa sintassi e come si chiama? Inoltre, potresti darmi l'equivalente di for x in A[1:]:
in Java?
possibile duplicato di [Spiegazione della notazione slice di Python] (http://stackoverflow.com/questions/509211/explain-pythons-slice-notation) – Pradhan