In [ ]:
# https://www.snapple.com/real-facts/677
# 677 = R
A FULLGROWN TREE PRODUCES ENOUGH OXYGEN TO SUPPORT A FAMILY OF FOUR
33 311‑559‑461‑461‑‑554‑677‑874‑111‑312 928‑677‑297‑297 625‑677‑874‑281‑559‑498‑297‑919
297‑312‑874‑559‑554‑511 874‑658‑993‑554‑297‑312 928‑874 919‑559‑625‑625‑874‑677‑928 33
311‑33‑987‑433‑461‑993 874‑311 311‑874‑559‑677.
A BCDDEFGHI JFKK LFGMCNKO
KIGCEP GQREKI JG OCLLGFJ A
BASTDR GB BGCF.
# https://www.snapple.com/real-facts/677
# 693 = O
A MALE CRICKET’S EAR IS LOCATED OF THE TIBIA ON ITS LEG.
83 618‑83‑748‑132 868‑61‑53‑868‑626‑132‑816’305 132‑83‑61 53‑305 748‑693‑868‑83‑816‑132‑828 693‑480
816‑765‑132 816‑53‑869‑53‑83 693‑852 53‑816‑305 748‑132‑829.
A BACD EFGEHDI’J DAF GJ CKEAIDL KM
IND IGOGA KP GIJ CDQ.
# https://www.snapple.com/real-facts/245
# 245 = N
THE FIRST TYPEWRITER WAS CALLED THE “LITERARY PIANO.”
134‑349‑714 808‑169‑96‑840‑134 134‑810‑882‑714‑240‑96‑169‑134‑714‑96 240‑584‑840
327‑584‑705‑705‑714‑351 134‑349‑714 “705‑169‑134‑714‑96‑584‑96‑810 882‑169‑584‑245‑620.”
ABC DEFGA AHICJFEACF JKG
LKMMCN ABC “MEACFKFH IEKOP.”
# http://snapplefact.com/?q=366
# 366 = G
The center of some golf balls contain honey.
281‑916‑903 724‑903‑832‑281‑903‑881 30‑845 883‑30‑179‑903 366‑30‑286‑845 176‑555‑286‑286‑883
724‑30‑832‑281‑555‑207‑832 916‑30‑832‑903‑752.
ABC DCEACF GH IGJC KGLH MNLLI
DGEANOE BGECP.
# http://snapplefact.com/?q=931
# 931 = K
THE NOTHINGNESS OF A BLACK HOLE GENERATES A SOUND IN THE KEY OF B FLAT.
THE EOTHWE?EEMM OF A BLACK HOLE ?EEEVATEM A MOVED WE THE KEY OF B FLAT.
330‑797‑813 714‑634‑330‑797‑417‑714‑884‑714‑813‑135‑135 634‑980 934 101‑110‑934‑695‑931
797‑634‑110‑813 884‑813‑714‑813‑207‑934‑330‑813‑135 934 135‑634‑145‑714‑642 417‑714 330‑797‑813
931‑813‑536 634‑980 101 980‑110‑934‑330.
ABC CDABECFCCGG DH I JKILM
BDKC FCCCNIACG I GDNCO EC ABC
MCP DH J HKIA.
# https://www.snapple.com/real-facts/182
# 182 = L
A RAINBOW CAN ONLY BE SEEN IN THE MORNING OR LATE AFTERNOON.
A EAINBO? MAN ONLY BE SEEN IN THE ?OENINT OE LATE A?TEENOON.
384 320‑384‑645‑472‑524‑732‑562 638‑384‑472 732‑472‑182‑447 524‑797 215‑797‑797‑472 645‑472
493‑513‑797 683‑732‑320‑472‑645‑472‑695 732‑320 182‑384‑493‑797 384‑947‑493‑797‑320‑472‑732‑732‑472.
A BACDEFG HAD FDIJ EB KBBD CD
LMB NFBDCDL FB IALB AOLBBDFFD.
# https://www.snapple.com/real-facts/77
# 77 = O
NO PIECE OF PAPER CAN BE FOLDED MORE THAN SEVEN TIMES.
424‑77 720‑959‑59‑484‑59 77‑697 720‑725‑720‑59‑291 484‑725‑424 156‑59 697‑77‑593‑458‑59‑458
538‑77‑291‑59 761‑547‑725‑424 751‑59‑530‑59‑424 761‑959‑538‑59‑751.
AB CDEFE BG CHCEI FHA JE GBKLEL
MBIE NOHA PEQEA NDMEP.
# https://www.snapple.com/real-facts/166
# 166 = L
BEFORE MERCURY, BRANDY WAS USED TO FILL THERMOMETERS.
SECORE MERUUR?, SRC?D? PCS USED TO CALL THERMOMETERS.
447‑598‑61‑198‑964‑598 571‑598‑964‑169‑956‑964‑752, 447‑964‑794‑606‑539‑752 613‑794‑141
956‑141‑598‑539 435‑198 61‑160‑166‑166 435‑464‑598‑964‑571‑198‑571‑598‑435‑598‑964‑141.
JAFBCA DACEECO, JCFGHO IFJ
EJAH KB FLMM KNACDBDAKACJ.
# https://www.snapple.com/real-facts/232
# 232 = I
THE BLUE WHALE’S HEART IS THE SIZE OF A SMALL CAR.
THE BLUE WHALE’S HEART LS THE SLIE AE A SMALL FAR.
602‑500‑426 21‑156‑94‑426 50‑500‑798‑156‑426’486 500‑426‑798‑737‑602 232‑486 602‑500‑426
486‑232‑912‑426 562‑724 798 486‑431‑798‑156‑156 434‑798‑737.
ABC DJEC FBGJC’H BCGIA JH ABC
HJKC GC G HLGJJ MGI.
# https://www.snapple.com/real-facts/729
# 729 = C
Twins have a very high occurrence of left handedness.
631‑306‑346‑359‑25 850‑143‑897‑317 143 897‑317‑201‑704 850‑346‑177‑850 58‑729‑729‑69‑201‑201‑317‑
359‑729‑317 58‑444 770‑317‑444‑631 850‑143‑359‑379‑317‑379‑359‑317‑25‑25.
ABCDE FGHI G HIJK FCLF MNNOJJI
DNI MP QIPA FGDRIRDIEE.
# https://www.snapple.com/real-facts/11
# 11 = R
FLAMINGOS TURN PINK FROM EATING SHRIMP.
FLAMINGOS FERN PINK FROM BAFING SHRIMP.
934‑193‑824‑771‑682‑515‑856‑420‑726 479‑966‑11‑515 780‑682‑515‑855 934‑11‑420‑771
788‑824‑479‑682‑515‑856 726‑730‑11‑682‑771‑780.
IABCDEFGH IJKE LDEM IKGC
NBIDEF HOKDCL.
In [3]:
given = """
33 311‑559‑461‑461‑‑554‑677‑874‑111‑312 928‑677‑297‑297 625‑677‑874‑281‑559‑498‑297‑919
297‑312‑874‑559‑554‑511 874‑658‑993‑554‑297‑312 928‑874 919‑559‑625‑625‑874‑677‑928 33
311‑33‑987‑433‑461‑993 874‑311 311‑874‑559‑677.
83 618‑83‑748‑132 868‑61‑53‑868‑626‑132‑816’305 132‑83‑61 53‑305 748‑693‑868‑83‑816‑132‑828 693‑480
816‑765‑132 816‑53‑869‑53‑83 693‑852 53‑816‑305 748‑132‑829.
134‑349‑714 808‑169‑96‑840‑134 134‑810‑882‑714‑240‑96‑169‑134‑714‑96 240‑584‑840
327‑584‑705‑705‑714‑351 134‑349‑714 “705‑169‑134‑714‑96‑584‑96‑810 882‑169‑584‑245‑620.”
281‑916‑903 724‑903‑832‑281‑903‑881 30‑845 883‑30‑179‑903 366‑30‑286‑845 176‑555‑286‑286‑883
724‑30‑832‑281‑555‑207‑832 916‑30‑832‑903‑752.
330‑797‑813 714‑634‑330‑797‑417‑714‑884‑714‑813‑135‑135 634‑980 934 101‑110‑934‑695‑931
797‑634‑110‑813 884‑813‑714‑813‑207‑934‑330‑813‑135 934 135‑634‑145‑714‑642 417‑714 330‑797‑813
931‑813‑536 634‑980 101 980‑110‑934‑330.
384 320‑384‑645‑472‑524‑732‑562 638‑384‑472 732‑472‑182‑447 524‑797 215‑797‑797‑472 645‑472
493‑513‑797 683‑732‑320‑472‑645‑472‑695 732‑320 182‑384‑493‑797 384‑947‑493‑797‑320‑472‑732‑732‑472.
424‑77 720‑959‑59‑484‑59 77‑697 720‑725‑720‑59‑291 484‑725‑424 156‑59 697‑77‑593‑458‑59‑458
538‑77‑291‑59 761‑547‑725‑424 751‑59‑530‑59‑424 761‑959‑538‑59‑751.
447‑598‑61‑198‑964‑598 571‑598‑964‑169‑956‑964‑752, 447‑964‑794‑606‑539‑752 613‑794‑141
956‑141‑598‑539 435‑198 61‑160‑166‑166 435‑464‑598‑964‑571‑198‑571‑598‑435‑598‑964‑141.
602‑500‑426 21‑156‑94‑426 50‑500‑798‑156‑426’486 500‑426‑798‑737‑602 232‑486 602‑500‑426
486‑232‑912‑426 562‑724 798 486‑431‑798‑156‑156 434‑798‑737.
631‑306‑346‑359‑25 850‑143‑897‑317 143 897‑317‑201‑704 850‑346‑177‑850 58‑729‑729‑69‑201‑201‑317‑
359‑729‑317 58‑444 770‑317‑444‑631 850‑143‑359‑379‑317‑379‑359‑317‑25‑25.
934‑193‑824‑771‑682‑515‑856‑420‑726 479‑966‑11‑515 780‑682‑515‑855 934‑11‑420‑771
788‑824‑479‑682‑515‑856 726‑730‑11‑682‑771‑780.
"""
lines = given.split('\n\n')
In [29]:
import re
_DIGITS = re.compile(r'\d+')
_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
def get_converter():
state = {'idx': 0} # HACK.
m = {}
def converter(match):
s = match.group(0)
if s not in m:
if state['idx'] >= len(_ALPHABET):
return s
m[s] = _ALPHABET[state['idx']]
state['idx'] += 1
return m[s]
return converter
for line in given.split('\n\n'):
line = line.strip().replace('\n', ' ')
converted = re.sub(_DIGITS, get_converter(), line)
print(line, '\t', converted.replace('‑', ''))
In [ ]: