Skip to content

Instantly share code, notes, and snippets.

@mattboehm
Created August 15, 2017 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattboehm/b5fc2574acd22d29e286c83152e427d2 to your computer and use it in GitHub Desktop.
Save mattboehm/b5fc2574acd22d29e286c83152e427d2 to your computer and use it in GitHub Desktop.
"""See how many qwerty words are also dvorak words"""
from __future__ import print_function
import string
QWERTY = "][abcdefghijklmnopqrstuvwxyz"
DVORAK = "=/axje.uidchtnmbrl'poygk,qf;"
TRANS = string.maketrans(QWERTY, DVORAK)
def main():
with open("/usr/share/dict/words") as f:
words = frozenset((word.strip().lower() for word in f))
results = []
for word in words:
dv = string.translate(word, TRANS)
if dv in words:
results.append((word, dv))
print(len(results))
print(list(sorted(results)))
if __name__ == "__main__":
main()
#319
#[('a', 'a'), ('aa', 'aa'), ('aam', 'aam'), ('ab', 'ax'), ('ad', 'ae'), ('ado', 'aer'), ('ago', 'air'), ('ah', 'ad'), ('aha', 'ada'), ('aht', 'ady'), ('aid', 'ace'), ('ak', 'at'), ('aka', 'ata'), ('akka', 'atta'), ('al', 'an'), ('ala', 'ana'), ('alala', 'anana'), ('alans', 'anabo'), ('algid', 'anice'), ('alk', 'ant'), ('all', 'ann'), ('alt', 'any'), ('am', 'am'), ('ama', 'ama'), ('amapa', 'amala'), ('amara', 'amapa'), ('amma', 'amma'), ('amt', 'amy'), ('an', 'ab'), ('ana', 'aba'), ('anama', 'abama'), ('and', 'abe'), ('ango', 'abir'), ('ann', 'abb'), ('anna', 'abba'), ('ant', 'aby'), ('ao', 'ar'), ('apa', 'ala'), ('apis', 'alco'), ('apt', 'aly'), ('ara', 'apa'), ('argal', 'apian'), ('ark', 'apt'), ('as', 'ao'), ('asoka', 'aorta'), ('at', 'ay'), ('aus', 'ago'), ('ausu', 'agog'), ('ava', 'aka'), ('aval', 'akan'), ('b', 'x'), ('c', 'j'), ('cal', 'jan'), ('call', 'jann'), ('cam', 'jam'), ('can', 'jab'), ('car', 'jap'), ('card', 'jape'), ('cardo', 'japer'), ('cat', 'jay'), ('d', 'e'), ('da', 'ea'), ('dak', 'eat'), ('dal', 'ean'), ('dao', 'ear'), ('do', 'er'), ('dod', 'ere'), ('dogal', 'erian'), ('donga', 'erbia'), ('duma', 'egma'), ('duns', 'egbo'), ('f', 'u'), ('flap', 'unal'), ('float', 'unray'), ('flossy', 'unroof'), ('flush', 'ungod'), ('flusk', 'ungot'), ('fo', 'ur'), ('foal', 'uran'), ('fod', 'ure'), ('fog', 'uri'), ('foud', 'urge'), ('foy', 'urf'), ('fu', 'ug'), ('g', 'i'), ('gal', 'ian'), ('gas', 'iao'), ('gid', 'ice'), ('git', 'icy'), ('glia', 'inca'), ('glial', 'incan'), ('goa', 'ira'), ('goal', 'iran'), ('god', 'ire'), ('goma', 'irma'), ('h', 'd'), ('ha', 'da'), ('had', 'dae'), ('hah', 'dad'), ('hal', 'dan'), ('hala', 'dana'), ('ham', 'dam'), ('hamal', 'daman'), ('han', 'dab'), ('hanna', 'dabba'), ('hao', 'dar'), ('hap', 'dal'), ('hat', 'day'), ('hau', 'dag'), ('hoard', 'drape'), ('hot', 'dry'), ('hsi', 'doc'), ('i', 'c'), ('ian', 'cab'), ('iao', 'car'), ('id', 'ce'), ('idol', 'cern'), ('isba', 'coxa'), ('isis', 'coco'), ('ismal', 'coman'), ('iso', 'cor'), ('ist', 'coy'), ('j', 'h'), ('jam', 'ham'), ('jap', 'hal'), ('jar', 'hap'), ('jarg', 'hapi'), ('jat', 'hay'), ('k', 't'), ('ka', 'ta'), ('kaf', 'tau'), ('kaik', 'tact'), ('kala', 'tana'), ('kan', 'tab'), ('kapa', 'tala'), ('kapp', 'tall'), ('kat', 'tay'), ('koa', 'tra'), ('kodak', 'treat'), ('kogia', 'trica'), ('l', 'n'), ('la', 'na'), ('lad', 'nae'), ('laid', 'nace'), ('lak', 'nat'), ('lam', 'nam'), ('lama', 'nama'), ('lan', 'nab'), ('lao', 'nar'), ('lar', 'nap'), ('lard', 'nape'), ('lat', 'nay'), ('m', 'm'), ('ma', 'ma'), ('maam', 'maam'), ('mab', 'max'), ('mad', 'mae'), ('maga', 'maia'), ('magh', 'maid'), ('mah', 'mad'), ('mahmal', 'madman'), ('maid', 'mace'), ('maja', 'maha'), ('mal', 'man'), ('mala', 'mana'), ('mall', 'mann'), ('malt', 'many'), ('malus', 'mango'), ('mam', 'mam'), ('mamma', 'mamma'), ('man', 'mab'), ('mana', 'maba'), ('mang', 'mabi'), ('mao', 'mar'), ('maomao', 'marmar'), ('map', 'mal'), ('mar', 'map'), ('mars', 'mapo'), ('mas', 'mao'), ('mat', 'may'), ('mats', 'mayo'), ('mau', 'mag'), ('maud', 'mage'), ('mo', 'mr'), ('n', 'b'), ('na', 'ba'), ('naa', 'baa'), ('naias', 'bacao'), ('nak', 'bat'), ('nam', 'bam'), ('nan', 'bab'), ('nana', 'baba'), ('nant', 'baby'), ('nap', 'bal'), ('napa', 'bala'), ('napal', 'balan'), ('nar', 'bap'), ('nat', 'bay'), ('noa', 'bra'), ('noah', 'brad'), ('noam', 'bram'), ('nogal', 'brian'), ('nosu', 'brog'), ('notal', 'bryan'), ('o', 'r'), ('oak', 'rat'), ('oam', 'ram'), ('oar', 'rap'), ('oat', 'ray'), ('od', 're'), ('oda', 'rea'), ('odd', 'ree'), ('os', 'ro'), ('p', 'l'), ('pa', 'la'), ('pah', 'lad'), ('pal', 'lan'), ('pala', 'lana'), ('palas', 'lanao'), ('palus', 'lango'), ('pam', 'lam'), ('pan', 'lab'), ('panna', 'labba'), ('par', 'lap'), ('parr', 'lapp'), ('parra', 'lappa'), ('pat', 'lay'), ('pau', 'lag'), ('paula', 'lagna'), ('pst', 'loy'), ('r', 'p'), ('ra', 'pa'), ('rab', 'pax'), ('rah', 'pad'), ('raia', 'paca'), ('raid', 'pace'), ('rais', 'paco'), ('raj', 'pah'), ('raja', 'paha'), ('ram', 'pam'), ('ramrod', 'pampre'), ('rana', 'paba'), ('rap', 'pal'), ('rapt', 'paly'), ('rat', 'pay'), ('roam', 'pram'), ('rosa', 'proa'), ('ross', 'proo'), ('rosy', 'prof'), ('rot', 'pry'), ('s', 'o'), ('sak', 'oat'), ('sam', 'oam'), ('sao', 'oar'), ('say', 'oaf'), ('sh', 'od'), ('sha', 'oda'), ('shab', 'odax'), ('shap', 'odal'), ('sla', 'ona'), ('slid', 'once'), ('so', 'or'), ('soap', 'oral'), ('sod', 'ore'), ('sok', 'ort'), ('sola', 'orna'), ('son', 'orb'), ('sot', 'ory'), ('soy', 'orf'), ('spay', 'olaf'), ('sudd', 'ogee'), ('surf', 'ogpu'), ('t', 'y'), ('ta', 'ya'), ('taj', 'yah'), ('tal', 'yan'), ('tala', 'yana'), ('tam', 'yam'), ('tana', 'yaba'), ('tao', 'yar'), ('tappa', 'yalla'), ('tar', 'yap'), ('tara', 'yapa'), ('tarr', 'yapp'), ('tav', 'yak'), ('td', 'ye'), ('that', 'yday'), ('to', 'yr'), ('tst', 'yoy'), ('u', 'g'), ('uang', 'gabi'), ('ud', 'ge'), ('udal', 'gean'), ('udo', 'ger'), ('uds', 'geo'), ('ug', 'gi'), ('ugh', 'gid'), ('us', 'go'), ('ush', 'god'), ('ust', 'goy'), ('v', 'k'), ('vag', 'kai'), ('val', 'kan'), ('vara', 'kapa'), ('vat', 'kay'), ('x', 'q'), ('y', 'f'), ('ya', 'fa'), ('yad', 'fae'), ('yah', 'fad'), ('yak', 'fat'), ('yam', 'fam'), ('yana', 'faba'), ('yao', 'far'), ('yapp', 'fall'), ('yat', 'fay'), ('yaud', 'fage'), ('yodh', 'fred'), ('yot', 'fry')]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment