Created
September 7, 2023 20:41
-
-
Save theothermattm/b0942a64dd013461dcbb9b44e5fd6530 to your computer and use it in GitHub Desktop.
Randomized name pairing in python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Console script for python_boilerplate.""" | |
import argparse | |
import random | |
import sys | |
import math | |
def main(): | |
"""Console script for python_boilerplate.""" | |
parser = argparse.ArgumentParser() | |
parser.add_argument('_', nargs='*') | |
args = parser.parse_args() | |
print("Arguments: " + str(args._)) | |
names = [] | |
with open('names.txt') as f: | |
while True: | |
line = f.readline() | |
if not line: | |
break | |
line = '@' + line | |
line = line.replace('\n','') | |
names.append(line) | |
print('names before half: ', len(names)) | |
half_point = math.floor((len(names) / 2)) | |
print('half point: ' + str(half_point)) | |
first_set = names[:(half_point)] | |
second_set = names[half_point:] | |
pairs = [] | |
for idx, i in enumerate(first_set): | |
if( len(second_set) > 0 ): | |
random_range = random.randrange(len(second_set)) | |
while ( random_range < 0) : | |
random_range = random.randrange(len(second_set)) | |
partner = second_set.pop(random_range) | |
pairs.append((i, partner)) | |
for p in pairs: | |
print('* ' + p[0] + ' <--> ' + p[1]) | |
print('Remainders to slot:') | |
print(second_set) | |
if __name__ == "__main__": | |
sys.exit(main()) # pragma: no cover |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment