I've analyzed the votes based on the .blt file
User : [1st, 2nd, 3rd] ------------------------------------ Robert C. Cartaino : [045, 061, 074] George Stocker : [153, 170, 170] Kyle : [207, 248, 211] Will : [336, 231, 168] Jonathan Sampson : [330, 267, 233] Jason Cohen : [350, 258, 221] John Topley : [217, 159, 165] Jonathan Leffler : [321, 222, 189] mmyers : [317, 211, 191] John Rudy : [145, 144, 163] Dave DeLong : [212, 164, 153] Welbog : [198, 143, 157] jjnguy : [129, 138, 145] Kip : [121, 177, 167] Gumbo : [408, 252, 231]
And here is the code I tried.
import re
d=open("stack-overflow-moderator-election-2010-votes.blt").read()
d=d.replace('"Stack Overflow Moderator Election 2010"',"")
d=re.sub("#.*?\n","",d)
votes,names=d.split("\n0\n")
votes=[map(int,x.split()) for x in re.findall("1 (.*) 0",votes)]
#[[1, 2, 3], [3, 4, 2], [3, 2, 5], [3, 6, 7],
names=[{"name":n.strip('"'),"votes":[0,0,0]} for n in names.strip().split("\n")]
#[{'votes': [45, 61, 74], 'name': 'Robert C. Cartaino'},
for x in votes:
if x:names[x.pop(0)-1]['votes'][0]+=1
if x:names[x.pop(0)-1]['votes'][1]+=1
if x:names[x.pop(0)-1]['votes'][2]+=1
lines=[" %30s : %s" % ("User","[1st, 2nd, 3rd]")]
lines.append(" "*13+"-"*36)
for x in names:
lines.append(" %30s : %s"%(x['name'],x['votes']))
print "\n".join(lines)