if n == 1: return [(-1,), (1,)]
if n == 2: return [(-1,0), (1,0), (0,-1), (0,1)]
if n == 3: return [(-1,0,0), (1,0,0), (0,-1,0), (0,1,0), (0,0,-1), (0,0,1)]
In pratica, restituire un elenco di tuple 2n
conformi alle specifiche precedenti. Il codice sopra funziona bene per i miei scopi, ma mi piacerebbe vedere una funzione che funziona per tutti n ∈ ℕ (solo per l'edificazione). Compreso tuple([0]*n)
nella risposta è accettabile da me.Qual è il modo pitone di generare questo tipo di lista? (Facce di un n-cubo)
Lo sto utilizzando per generare la direzione delle facce di un politopo di misura. Per tutte le direzioni, posso usare list(itertools.product(*[(0, -1, 1)]*n))
, ma non riesco a trovare qualcosa di abbastanza conciso solo per le direzioni del viso.
probabilmente sarei a smettere di pensarci e utilizzare un 'ciclo for'. – user2357112
Ehm .. * "Code Golf non è più in tema per Overflow dello stack" *. – arshajii
@arshajii: non è strettamente golf. Come puoi vedere, la risposta più votata non è il golf. – rhombidodecahedron