Reputation: 33
I have not found any resource where it is implemented.
Need to flip the any special character
s="("
Expected output : ")"
I tried the reversed
but it gives the same
Any solution is much appreciated !!!
Upvotes: 2
Views: 190
Reputation: 1107
You'll have to extend this, but here's a start, I've commented out every character that's currently not supported, in the final code this dict will be generated from two strings or minified:
mirror = {
' ': ' ', '!': '!', '"': '"',
# '#': '#', '$': '$', '%': '%', '&': '&',#
"'": "'", '(': ')', ')': '(', '*': '*', '+': '+',
# ',': ',',#
'-': '-', '.': '.', '/': '\\', '0': '0',
# '1': '1', '2': '2',#
'3': 'Ɛ',
# '4': '4', '5': '5', '6': '6', '7': '7',#
'8': '8',
# '9': '9',#
':': ':',
# ';': ';',#
'<': '>', '=': '=', '>': '<', '?': '⸮',
# '@': '@',#
'A': 'A',
# 'B': 'B',#
'C': 'Ɔ',
# 'D': 'D',#
'E': 'Ǝ',
# 'F': 'F', 'G': 'G',#
'H': 'H', 'I': 'I',
# 'J': 'J', 'K': 'K',#
'L': '⅃', 'M': 'M',
'N': 'И', 'O': 'O',
# 'P': 'P', 'Q': 'Q',#
'R': 'Я', 'S': 'Ƨ', 'T': 'T', 'U': 'U', 'V': 'V', 'W': 'W', 'X': 'X', 'Y': 'Y',
# 'Z': 'Z',#
'[': ']', '\\': '/', ']': '[', '^': '^', '_': '_', '`': '´',
# 'a': 'a',#
'b': 'd', 'c': 'ɔ', 'd': 'b', 'e': 'ɘ',
# 'f': 'f', 'g': 'g', 'h': 'h', 'i': 'i', 'j': 'j', 'k': 'k', 'l': 'l',#
'm': 'm', 'n': 'n', 'o': 'o', 'p': 'q', 'q': 'p',
# 'r': 'r',#
's': 'ƨ',
# 't': 't',#
'u': 'u', 'v': 'v', 'w': 'w', 'x': 'x',
# 'y': 'y', 'z': 'z',#
'{': '}', '|': '|', '}': '{',
# '~': '~',#
'¡': '¡',
# '¢': '¢', '£': '£',#
'¤': '¤', '¥': '¥', '¦': '¦',
# '§': '§',#
'¨': '¨',
# '©': '©', 'ª': 'ª',#
'«': '»',
# '¬': '¬', '®': '®', '¯': '¯',#
'°': '°', '±': '±',
# '²': '²', '³': '³',#
'´': '`',
# 'µ': 'µ', '¶': '¶',#
'·': '·',
# '¸': '¸', '¹': '¹',#
'º': 'º', '»': '«',
# '¼': '¼', '½': '½', '¾': '¾', '¿': '¿',#
'À': 'Á', 'Á': 'À', 'Â': 'Â',
# 'Ã': 'Ã',#
'Ä': 'Ä', 'Å': 'Å',
# 'Æ': 'Æ', 'Ç': 'Ç', 'È': 'È', 'É': 'É', 'Ê': 'Ê', 'Ë': 'Ë',#
'Ì': 'Í', 'Í': 'Ì', 'Î': 'Î', 'Ï': 'Ï',
# 'Ð': 'Ð', 'Ñ': 'Ñ',#
'Ò': 'Ó', 'Ó': 'Ò', 'Ô': 'Ô',
# 'Õ': 'Õ',#
'Ö': 'Ö', '×': '×',
# 'Ø': 'Ø',#
'Ù': 'Ú', 'Ú': 'Ù', 'Û': 'Û', 'Ü': 'Ü',
# 'Ý': 'Ý', 'Þ': 'Þ', 'ß': 'ß', 'à': 'à', 'á': 'á', 'â': 'â', 'ã': 'ã', 'ä': 'ä', 'å': 'å', 'æ': 'æ', 'ç': 'ç', 'è': 'è', 'é': 'é', 'ê': 'ê', 'ë': 'ë', 'ì': 'ì', 'í': 'í', 'î': 'î', 'ï': 'ï', 'ð': 'ð', 'ñ': 'ñ',#
'ò': 'ó', 'ó': 'ò', 'ô': 'ô',
# 'õ': 'õ',#
'ö': 'ö', '÷': '÷',
# 'ø': 'ø',#
'ù': 'ú', 'ú': 'ù', 'û': 'û', 'ü': 'ü',
# 'ý': 'ý', 'þ': 'þ', 'ÿ': 'ÿ',#
'Ā': 'Ā',
# 'ā': 'ā',#
'Ă': 'Ă',
# 'ă': 'ă','Ą': 'Ą','ą': 'ą','Ć': 'Ć','ć': 'ć','Ĉ': 'Ĉ','ĉ': 'ĉ','Ċ': 'Ċ','ċ': 'ċ','Č': 'Č','č': 'č','Ď': 'Ď','ď': 'ď','Đ': 'Đ','đ': 'đ','Ē': 'Ē','ē': 'ē','Ĕ': 'Ĕ','ĕ': 'ĕ','Ė': 'Ė','ė': 'ė','Ę': 'Ę','ę': 'ę','Ě': 'Ě','ě': 'ě','Ĝ': 'Ĝ','ĝ': 'ĝ','Ğ': 'Ğ','ğ': 'ğ','Ġ': 'Ġ','ġ': 'ġ','Ģ': 'Ģ','ģ': 'ģ',#
'Ĥ': 'Ĥ',
# 'ĥ': 'ĥ',#
'Ħ': 'Ħ',
# 'ħ': 'ħ','Ĩ': 'Ĩ','ĩ': 'ĩ',#
'Ī': 'Ī',
# 'ī': 'ī',#
'Ĭ': 'Ĭ',
# 'ĭ': 'ĭ','Į': 'Į','į': 'į',#
'İ': 'İ',
# 'ı': 'ı','IJ': 'IJ','ij': 'ij','Ĵ': 'Ĵ','ĵ': 'ĵ','Ķ': 'Ķ','ķ': 'ķ','ĸ': 'ĸ','Ĺ': 'Ĺ','ĺ': 'ĺ','Ļ': 'Ļ','ļ': 'ļ','Ľ': 'Ľ','ľ': 'ľ','Ŀ': 'Ŀ','ŀ': 'ŀ','Ł': 'Ł','ł': 'ł','Ń': 'Ń','ń': 'ń','Ņ': 'Ņ','ņ': 'ņ','Ň': 'Ň',#
'ň': 'ň',
# 'ʼn': 'ʼn','Ŋ': 'Ŋ','ŋ': 'ŋ',#
'Ō': 'Ō', 'ō': 'ō', 'Ŏ': 'Ŏ', 'ŏ': 'ŏ',
# 'Ő': 'Ő','ő': 'ő','Œ': 'Œ','œ': 'œ','Ŕ': 'Ŕ','ŕ': 'ŕ','Ŗ': 'Ŗ','ŗ': 'ŗ','Ř': 'Ř','ř': 'ř','Ś': 'Ś','ś': 'ś','Ŝ': 'Ŝ','ŝ': 'ŝ','Ş': 'Ş','ş': 'ş','Š': 'Š','š': 'š','Ţ': 'Ţ','ţ': 'ţ',#
'Ť': 'Ť',
# 'ť': 'ť',#
'Ŧ': 'Ŧ',
# 'ŧ': 'ŧ','Ũ': 'Ũ','ũ': 'ũ',#
'Ū': 'Ū', 'ū': 'ū', 'Ŭ': 'Ŭ', 'ŭ': 'ŭ', 'Ů': 'Ů', 'ů': 'ů',
# 'Ű': 'Ű','ű': 'ű','Ų': 'Ų','ų': 'ų',#
'Ŵ': 'Ŵ', 'ŵ': 'ŵ', 'Ŷ': 'Ŷ',
# 'ŷ': 'ŷ',#
'Ÿ': 'Ÿ',
# 'Ź': 'Ź','ź': 'ź','Ż': 'Ż','ż': 'ż','Ž': 'Ž','ž': 'ž','ſ': 'ſ','ƀ': 'ƀ','Ɓ': 'Ɓ','Ƃ': 'Ƃ','ƃ': 'ƃ','Ƅ': 'Ƅ','ƅ': 'ƅ',#
'Ɔ': 'C',
# 'Ƈ': 'Ƈ','ƈ': 'ƈ','Ɖ': 'Ɖ','Ɗ': 'Ɗ','Ƌ': 'Ƌ','ƌ': 'ƌ','ƍ': 'ƍ',#
'Ǝ': 'E',
# 'Ə': 'Ə',#
'Ɛ': '3',
# 'Ƒ': 'Ƒ','ƒ': 'ƒ','Ɠ': 'Ɠ',#
'Ɣ': 'Ɣ',
# 'ƕ': 'ƕ','Ɩ': 'Ɩ',#
'Ɨ': 'Ɨ',
# 'Ƙ': 'Ƙ','ƙ': 'ƙ','ƚ': 'ƚ','ƛ': 'ƛ',#
'Ɯ': 'Ɯ',
# 'Ɲ': 'Ɲ','ƞ': 'ƞ',#
'Ɵ': 'Ɵ',
# 'Ơ': 'Ơ','ơ': 'ơ','Ƣ': 'Ƣ','ƣ': 'ƣ','Ƥ': 'Ƥ','ƥ': 'ƥ','Ʀ': 'Ʀ',#
'Ƨ': 'S', 'ƨ': 's',
# 'Ʃ': 'Ʃ','ƪ': 'ƪ','ƫ': 'ƫ','Ƭ': 'Ƭ','ƭ': 'ƭ','Ʈ': 'Ʈ','Ư': 'Ư','ư': 'ư',#
'Ʊ': 'Ʊ',
# 'Ʋ': 'Ʋ',
'Ƴ': 'Ƴ',
# 'ƴ': 'ƴ','Ƶ': 'Ƶ','ƶ': 'ƶ',#
'Ʒ': 'Ƹ', 'Ƹ': 'Ʒ',
# 'ƹ': 'ƹ','ƺ': 'ƺ','ƻ': 'ƻ','Ƽ': 'Ƽ','ƽ': 'ƽ','ƾ': 'ƾ','ƿ': 'ƿ',#
'ǀ': 'ǀ', 'ǁ': 'ǁ', 'ǂ': 'ǂ', 'ǃ': 'ǃ',
# 'DŽ': 'DŽ','Dž': 'Dž','dž': 'dž','LJ': 'LJ','Lj': 'Lj','lj': 'lj','NJ': 'NJ','Nj': 'Nj','nj': 'nj',#
'Ǎ': 'Ǎ',
# 'ǎ': 'ǎ',#
'Ǐ': 'Ǐ',
# 'ǐ': 'ǐ',#
'Ǒ': 'Ǒ', 'ǒ': 'ǒ', 'Ǔ': 'Ǔ', 'ǔ': 'ǔ', 'Ǖ': 'Ǖ', 'ǖ': 'ǖ', 'Ǘ': 'Ǜ', 'ǘ': 'ǜ', 'Ǚ': 'Ǚ', 'ǚ': 'ǚ', 'Ǜ': 'Ǘ', 'ǜ': 'ǘ',
# 'ǝ': 'ǝ',#
'Ǟ': 'Ǟ',
# 'ǟ': 'ǟ',#
'Ǡ': 'Ǡ',
# 'ǡ': 'ǡ','Ǣ': 'Ǣ','ǣ': 'ǣ','Ǥ': 'Ǥ','ǥ': 'ǥ','Ǧ': 'Ǧ','ǧ': 'ǧ','Ǩ': 'Ǩ','ǩ': 'ǩ','Ǫ': 'Ǫ','ǫ': 'ǫ','Ǭ': 'Ǭ','ǭ': 'ǭ','Ǯ': 'Ǯ','ǯ': 'ǯ','ǰ': 'ǰ','DZ': 'DZ','Dz': 'Dz','dz': 'dz','Ǵ': 'Ǵ','ǵ': 'ǵ','Ƕ': 'Ƕ','Ƿ': 'Ƿ','Ǹ': 'Ǹ','ǹ': 'ǹ','Ǻ': 'Ǻ','ǻ': 'ǻ','Ǽ': 'Ǽ','ǽ': 'ǽ','Ǿ': 'Ǿ','ǿ': 'ǿ'#
}
normal = input("Enter text to mirror and reverse: ")
try:
mirrored = "".join(mirror[character] for character in reversed(normal))
print(normal, "is", mirrored, "mirrored and reversed.")
except KeyError as k:
print("This text can't be mirrored yet, edit the mirror dict. KeyError: %s" % k)
Output:
Enter text to mirror: bod
bod is dob mirrored.
Upvotes: 1
Reputation: 1280
Try this
flipper = {
"(": ")",
")": "(",
}
symbol = "("
symbol = flipper[symbol]
# symbol now became ")"
Easier way of adding new pairs:
# Basically a config of symbol pairs
letters = "{}()"
# One direction mapping
mapping = dict(zip(letters[::2], letters[1::2]))
# Add reverse mapping
flipper = mapping | {values: keys for keys, values in mapping.items()}
flipper["}"] == "{"
# True
Upvotes: 0
Reputation: 1530
Here main idea is to create a set of charaters which starts and ends, like []
and then find the ASCII value of each, then find out the nearest ascii value.
Code:
def reverse(NUM):
print(chr(min([ord(i) for i in set(r"(){}[]<>") if i!=NUM], key=lambda x:abs(x-ord(NUM)))))
reverse('}')
#Output {
Upvotes: 2