Skip to content

Instantly share code, notes, and snippets.

@prmishra
Last active April 2, 2019 06:32
Show Gist options
  • Save prmishra/cdcd76c881db55d7ba2d6c2d833589d3 to your computer and use it in GitHub Desktop.
Save prmishra/cdcd76c881db55d7ba2d6c2d833589d3 to your computer and use it in GitHub Desktop.
# flake8: noqa
import os
import sys
# This function sorts a list of numbers but
# prioritizes one group of numbers to come first.
# It returns whether the higher-priority items were seen at all.
def sort_priority(numbers, group):
found = False
def helper(x):
if x in group:
found = True
return (0, x)
return (1, x)
numbers.sort(key=helper)
return found
def print_usage():
instr = "comma-separated-integers"
print(
"Usage:- python {} numbers={} group={}".format(
os.path.basename(__file__),
instr,
instr,
),
)
def parse_arg():
try:
numbers = [int(s) for s in sys.argv[1].split('numbers=')[1].split(',')]
group = set([int(s)
for s in sys.argv[2].split('group=')[1].split(',')])
return numbers, group
except Exception:
print_usage()
exit(1)
if __name__ == "__main__":
if len(sys.argv) == 3:
numbers, group = parse_arg()
found = sort_priority(numbers, group)
print("Found: {}".format(found))
print(numbers)
else:
print_usage()
exit(1)
# python script.py numbers=10,2,5,4,6 group=4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment