Skip to content

Instantly share code, notes, and snippets.

@pydsigner
Last active November 2, 2017 19:09
Show Gist options
  • Save pydsigner/0a65f0f4dff6284cba607df7818c9c06 to your computer and use it in GitHub Desktop.
Save pydsigner/0a65f0f4dff6284cba607df7818c9c06 to your computer and use it in GitHub Desktop.
Secret Santa One-line
import random
print (lambda names, used, assigned: [((lambda n=n: (n, assigned.add(n))[0])(), (lambda p: (p, used.add(p))[0])(next(x for x in (random.choice(list(names - used - {n})) for i in xrange(10**9)) if 1 or len(names - used - {x}) != 1 or (used | {x} != assigned | {n})))) for n in names])(set(raw_input().split(',')), set(), set())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment