Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Python] Spiegazione pezzo di codice

    Ciao a tutti, ho difficoltà a comprendere questo pezzo di codice che effettua tutte le possibili permutazioni di una lista:
    codice:
    def permutazioni(list):
    	n = len(list)
    	if n == 1 or n == 0: return 
    [list]
    	else:
    		risult = []
    		for i in range(n):
    			primo = list[i]
    			listaDegliAltri = list[:i] + list[i+1:]
    			perms = permutazioni(listaDegliAltri)
    			for perm in perms:
    				risult.append([primo] + perm)
    		return risult
    In particolar modo non capisco la riga:
    codice:
    listaDegliAltri = list[:i] + list[i+1:]
    Qualcuno può aiutarmi?
    Grazie

  2. #2
    codice:
    listaDegliAltri = list[:i] + list[i+1:]
    Semplicemente, costruisce una lista contenente tutti gli elementi di list tranne l'elemento i-esimo.

    La cosa funziona grazie alla notazione di slicing: list[:i] prende tutti gli elementi dal primo fino all'i-esimo (escluso), list[i+1:] prende tutti gli elementi dall'(i+1)esimo fino alla fine della lista; il + concatena le due slice, e ottieni così la lista originaria privata dell'elemento i.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie, spiegato benissimo!

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.