Skip to content

Instantly share code, notes, and snippets.

@fabian57
Created March 30, 2015 19:25
Show Gist options
  • Select an option

  • Save fabian57/211ca0d99b32e78953ee to your computer and use it in GitHub Desktop.

Select an option

Save fabian57/211ca0d99b32e78953ee to your computer and use it in GitHub Desktop.
def suffix_sequences(suffix, seq):
result = []
for l in seq:
result.append(l+[suffix])
return result
from math import log
def power_list(seq, result=[[]]):
if 2**len(seq) == len(result):
return result
else:
result += suffix_sequences(seq[int(log(len(result), 2))], result)
return power_list(seq)
@laowantong
Copy link

Et pour finir les deux fonctions en une seule ligne:

def power_list(l, r = [[]]):
    return power_list(l[1:], r + [s + [l[0]] for s in r]) if l else r

C'est tout de suite plus clair ;)

@fabian57
Copy link
Author

Merci pour la version non terminale, j'ai pas réussi à la faire, surtout après avoir utiliser un "for" dans une version récursive
Et les programmes d'une ligne je trouve ça toujours impressionnant

PS: arrêtez de me faire des compliments je vais croire que je suis trop bon

@laowantong
Copy link

Si tu n'es pas bon, en tout cas tu travailles et c'est le meilleur moyen de le devenir ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment