| | |
Mendeleiev's periodic table in python
This snippet allows your code to use the Mendeleiev's periodic table of elements. It defines a single function
mendeleiev_table() which returns the table as a python list of lists.
# source: Gribouillis at www.daniweb.com - 2008 def mendeleiev_table (): """Returns the mendeleiev table as a python list of lists. Each cell contains either None or a pair (symbol, number), or a list of pairs for the cells * and **. """ data =""" 2008 transposed mendeleiev table with atomic numbers BEGIN H 1 | Li 3 | Na 11 | K 19 | Rb 37 | Cs 55 | Fr 87 | Be 4 | Mg 12 | Ca 20 | Sr 38 | Ba 56 | Ra 88 | | | Sc 21 | Y 39 | * | ** | | | Ti 22 | Zr 40 | Hf 72 | Rf 104 | | | V 23 | Nb 41 | Ta 73 | Db 105 | | | Cr 24 | Mo 42 | W 74 | Sg 106 | | | Mn 25 | Tc 43 | Re 75 | Bh 107 | | | Fe 26 | Ru 44 | Os 76 | Hs 108 | | | Co 27 | Rh 45 | Ir 77 | Mt 109 | | | Ni 28 | Pd 46 | Pt 78 | Ds 110 | | | Cu 29 | Ag 47 | Au 79 | Rg 111 | | | Zn 30 | Cd 48 | Hg 80 | Uub 112 | B 5 | Al 13 | Ga 31 | In 49 | Tl 81 | Uut 113 | C 6 | Si 14 | Ge 32 | Sn 50 | Pb 82 | Uuq 114 | N 7 | P 15 | As 33 | Sb 51 | Bi 83 | Uup 115 | O 8 | S 16 | Se 34 | Te 52 | Po 84 | Uuh 116 | F 9 | Cl 17 | Br 35 | I 53 | At 85 | Uus 117 He 2 | Ne 10 | Ar 18 | Kr 36 | Xe 54 | Rn 86 | Uuo 118 END * ** La 57 | Ac 89 Ce 58 | Th 90 Pr 59 | Pa 91 Nd 60 | U 92 Pm 61 | Np 93 Sm 62 | Pu 94 Eu 63 | Am 95 Gd 64 | Cm 96 Tb 65 | Bk 97 Dy 66 | Cf 98 Ho 67 | Es 99 Er 68 | Fm 100 Tm 69 | Md 101 Yb 70 | No 102 Lu 71 | Lr 103 """ lines =[line .strip ()for line in data .split ("\n")] begin =lines .index ("BEGIN") end =lines .index ("END") nrows =len (lines [begin +1 ].split ("|")) ncols =end -begin -1 # create initial table with empty cells table =[[None ]*ncols for i in range (nrows )] # read lanthanids and actinids dic ={"*":[],"**":[]} for x ,y in [line .split ("|")for line in lines [end +2 :-1 ]]: e ,n =x .strip ().split () dic ["*"].append ((e ,int (n ))) e ,n =y .strip ().split () dic ["**"].append ((e ,int (n ))) for col ,line in enumerate (lines [begin +1 :end ]): for row ,content in enumerate (line .split ("|")): content =content .strip () if content in dic : table [row ][col ]=dic [content ] elif content : e ,n =content .split () table [row ][col ]=(e ,int (n )) return table
0
•
•
•
•
I missed the following shorter function with the same output 

python Syntax (Toggle Plain Text)
def mendeleiev_table (): """Returns the mendeleiev table as a python list of lists. Each cell contains either None or a pair (symbol, atomic number), or a list of pairs for the cells * and **. """ import re L =[(e ,i +1 )for (i ,e )in enumerate ( re .compile ("[A-Z][a-z]*").findall (""" HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKr RbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaCePrNdPmSmEuGdTbDyHoEr TmYbLuHfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaUNpPuAmCmBkCfEsFm MdNoLrRfDbSgBhHsMtDsRgUubUutUuqUupUuhUusUuo"""))] for i ,j in ((88 ,103 ),(56 ,71 )): L [i ]=L [i :j ] L [i +1 :]=L [j :] for i ,j in ((12 ,10 ),(4 ,10 ),(1 ,16 )): L [i :i ]=[None ]*j return [L [18 *i :18 *(i +1 )]for i in range (7 )]
Similar Threads
- Retrive table from postgresql and display it using python turbogears (Python)
- Create an extra table (copy the columns and new table) for every existing table (MS SQL)
- Python-mysql for checking table exist or not (Python)
- Linksys wireless G - periodic resetting? (Networking Hardware Configuration)
- New Element In The Periodic Table (Geeks' Lounge)
| Thread Tools | Search this Thread |
abrupt accessdenied anti apache application approximation argv array beginner book builtin calculator change converter countpasswordentry curved dan08 dictionaries dictionary dynamic edit enter examples file float format function gui heads homework import inches input java keyboard lapse launcher library line lines linux list lists loop microphone mouse movingimageswithpygame mysqlquery newb number numbers numeric output parameters parsing path phonebook plugin port prime programming projects py2exe pygame pyopengl python random recursion redirect remote reverse scrolledtext session simple software sprite statictext string strings syntax table terminal text textarea thread threading time tlapse trick tuple tutorial twoup ubuntu unicode unit urllib urllib2 variable wordgame wxpython



