diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-09-01 10:04:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-01 10:04:10 +0100 |
| commit | d7197459679cd7a9a21ece609975c58a71717dc1 (patch) | |
| tree | ddbe94f2361f737305479d2328d3e274f0a4f72d /challenge-284/sgreen/python/ch-2.py | |
| parent | 289b1566e1124b1e52dd7b491a57494ced8990fe (diff) | |
| parent | 55c3d22707c0a0d6f119d16b6024a78bd1d901d2 (diff) | |
| download | perlweeklychallenge-club-d7197459679cd7a9a21ece609975c58a71717dc1.tar.gz perlweeklychallenge-club-d7197459679cd7a9a21ece609975c58a71717dc1.tar.bz2 perlweeklychallenge-club-d7197459679cd7a9a21ece609975c58a71717dc1.zip | |
Merge pull request #10741 from simongreen-net/master
sgreen solutions to challenge 284
Diffstat (limited to 'challenge-284/sgreen/python/ch-2.py')
| -rwxr-xr-x | challenge-284/sgreen/python/ch-2.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-284/sgreen/python/ch-2.py b/challenge-284/sgreen/python/ch-2.py new file mode 100755 index 0000000000..a236c11600 --- /dev/null +++ b/challenge-284/sgreen/python/ch-2.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import json +import sys + + +def find_index(lst: list, val: int): + # Find the position of val in lst. If it does not appear, return the + # length of the list + return lst.index(val) if val in lst else len(lst) + + +def relative_sort(list1: list, list2: list) -> list: + # Sort the first list, in the order they appear in the second list. If + # it doesn't appear in the second list, append to the end in numerical order. + return sorted(list1, key=lambda i: (find_index(list2, i), i)) + + +def main(): + lists = json.loads(sys.argv[1]) + result = relative_sort(*lists) + + # Convert to a tuple to match expected output + print(tuple(result)) + + +if __name__ == '__main__': + main() |
