Skip to content

Instantly share code, notes, and snippets.

@skatenerd
Last active November 14, 2016 16:28
Show Gist options
  • Save skatenerd/89f490b64cc7547282deb27bf2d75a65 to your computer and use it in GitHub Desktop.
Save skatenerd/89f490b64cc7547282deb27bf2d75a65 to your computer and use it in GitHub Desktop.
whose votes are worth more?
def weighted_average(categories):
total_weight = sum(weight for (weight,_) in categories)
sum_of_products = sum(weight * value for (weight, value) in categories)
return sum_of_products / total_weight
swing_states = {
'colorado': 9,
'florida': 29,
'iowa': 6,
'michigan': 16,
'nevada': 6,
'new hampshire': 4,
'north carolina': 15,
'ohio': 18,
'pennsylvania': 20,
'virginia': 13,
'wisconsin': 10
}
states = {
'alabama': {'total': 4822023, 'white': 67.0, 'hispanic or latino': 3.9, 'black': 26.2, 'american_indian_or_alaska_native': 0.6, 'asian': 1.1, 'native hawaiian or pacific islander': 0.1, 'mixed race': 1.5},
'alaska': {'total': 731449, 'white': 64.1, 'hispanic or latino': 5.5, 'black': 3.3, 'american_indian_or_alaska_native': 14.8, 'asian': 5.4, 'native hawaiian or pacific islander': 1.0, 'mixed race': 7.3},
'arizona': {'total': 6553255, 'white': 57.8, 'hispanic or latino': 29.6, 'black': 4.1, 'american_indian_or_alaska_native': 4.6, 'asian': 2.8, 'native hawaiian or pacific islander': 0.2, 'mixed race': 3.4},
'arkansas': {'total': 2949131, 'white': 74.5, 'hispanic or latino': 6.4, 'black': 15.4, 'american_indian_or_alaska_native': 0.8, 'asian': 1.2, 'native hawaiian or pacific islander': 0.2, 'mixed race': 2.0},
'california': {'total': 38041430, 'white': 40.1, 'hispanic or latino': 37.6, 'black': 6.2, 'american_indian_or_alaska_native': 1.0, 'asian': 13.0, 'native hawaiian or pacific islander': 0.4, 'mixed race': 4.9},
'colorado': {'total': 5187582, 'white': 70.0, 'hispanic or latino': 20.7, 'black': 4.0, 'american_indian_or_alaska_native': 1.1, 'asian': 2.8, 'native hawaiian or pacific islander': 0.1, 'mixed race': 3.4},
'connecticut': {'total': 3590347, 'white': 71.2, 'hispanic or latino': 13.4, 'black': 10.1, 'american_indian_or_alaska_native': 0.3, 'asian': 3.8, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.6},
'delaware': {'total': 917092, 'white': 65.3, 'hispanic or latino': 8.2, 'black': 21.4, 'american_indian_or_alaska_native': 0.5, 'asian': 3.2, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.7},
'district of columbia': {'total': 632323, 'white': 34.8, 'hispanic or latino': 9.1, 'black': 50.7, 'american_indian_or_alaska_native': 0.3, 'asian': 3.5, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.9},
'florida': {'total': 19317568, 'white': 57.9, 'hispanic or latino': 22.5, 'black': 16.0, 'american_indian_or_alaska_native': 0.4, 'asian': 2.4, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.5},
'georgia (u.s. state)|georgia': {'total': 9919945, 'white': 55.9, 'hispanic or latino': 8.8, 'black': 30.5, 'american_indian_or_alaska_native': 0.3, 'asian': 3.2, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.1},
'hawaii': {'total': 1392313, 'white': 22.7, 'hispanic or latino': 8.9, 'black': 1.6, 'american_indian_or_alaska_native': 0.3, 'asian': 38.6, 'native hawaiian or pacific islander': 10.0, 'mixed race': 23.6},
'idaho': {'total': 1595728, 'white': 84.0, 'hispanic or latino': 11.2, 'black': 0.6, 'american_indian_or_alaska_native': 1.4, 'asian': 1.2, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.5},
'illinois': {'total': 12875255, 'white': 63.7, 'hispanic or latino': 15.8, 'black': 14.5, 'american_indian_or_alaska_native': 0.3, 'asian': 4.6, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.3},
'indiana': {'total': 6537334, 'white': 81.5, 'hispanic or latino': 6.0, 'black': 9.1, 'american_indian_or_alaska_native': 0.3, 'asian': 1.6, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.0},
'iowa': {'total': 3074186, 'white': 88.7, 'hispanic or latino': 5.0, 'black': 2.9, 'american_indian_or_alaska_native': 0.4, 'asian': 1.7, 'native hawaiian or pacific islander': 0.1, 'mixed race': 1.8},
'kansas': {'total': 2885905, 'white': 78.2, 'hispanic or latino': 10.5, 'black': 5.9, 'american_indian_or_alaska_native': 1.0, 'asian': 2.4, 'native hawaiian or pacific islander': 0.1, 'mixed race': 3.0},
'kentucky': {'total': 4380415, 'white': 86.3, 'hispanic or latino': 3.1, 'black': 7.8, 'american_indian_or_alaska_native': 0.2, 'asian': 1.1, 'native hawaiian or pacific islander': 0.1, 'mixed race': 1.7},
'louisiana': {'total': 4601893, 'white': 60.3, 'hispanic or latino': 4.2, 'black': 32.0, 'american_indian_or_alaska_native': 0.7, 'asian': 1.5, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.6},
'maine': {'total': 1329192, 'white': 94.4, 'hispanic or latino': 1.3, 'black': 1.2, 'american_indian_or_alaska_native': 0.6, 'asian': 1.0, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.6},
'maryland': {'total': 5884563, 'white': 54.7, 'hispanic or latino': 8.2, 'black': 29.4, 'american_indian_or_alaska_native': 0.4, 'asian': 5.5, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.9},
'massachusetts': {'total': 6646144, 'white': 76.1, 'hispanic or latino': 9.6, 'black': 6.6, 'american_indian_or_alaska_native': 0.3, 'asian': 5.3, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.6},
'michigan': {'total': 9883360, 'white': 76.6, 'hispanic or latino': 4.4, 'black': 14.2, 'american_indian_or_alaska_native': 0.6, 'asian': 2.4, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.3},
'minnesota': {'total': 5379139, 'white': 83.1, 'hispanic or latino': 4.7, 'black': 5.2, 'american_indian_or_alaska_native': 1.1, 'asian': 4.0, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.4},
'mississippi': {'total': 2984926, 'white': 58.0, 'hispanic or latino': 2.7, 'black': 37.0, 'american_indian_or_alaska_native': 0.5, 'asian': 0.9, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.1},
'missouri': {'total': 6021988, 'white': 81.0, 'hispanic or latino': 3.5, 'black': 11.6, 'american_indian_or_alaska_native': 0.5, 'asian': 1.6, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.1},
'montana': {'total': 1005141, 'white': 87.8, 'hispanic or latino': 2.9, 'black': 0.4, 'american_indian_or_alaska_native': 6.3, 'asian': 0.6, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.5},
'nebraska': {'total': 1855525, 'white': 82.1, 'hispanic or latino': 9.2, 'black': 4.5, 'american_indian_or_alaska_native': 1.0, 'asian': 1.8, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.2},
'nevada': {'total': 2758931, 'white': 54.1, 'hispanic or latino': 26.5, 'black': 8.1, 'american_indian_or_alaska_native': 1.2, 'asian': 7.2, 'native hawaiian or pacific islander': 0.6, 'mixed race': 4.7},
'new hampshire': {'total': 1320718, 'white': 92.3, 'hispanic or latino': 2.8, 'black': 1.1, 'american_indian_or_alaska_native': 0.2, 'asian': 2.2, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.6},
'new jersey': {'total': 8864590, 'white': 59.3, 'hispanic or latino': 17.7, 'black': 13.7, 'american_indian_or_alaska_native': 0.3, 'asian': 8.3, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.7},
'new mexico': {'total': 2085538, 'white': 40.5, 'hispanic or latino': 46.3, 'black': 2.1, 'american_indian_or_alaska_native': 9.4, 'asian': 1.4, 'native hawaiian or pacific islander': 0.1, 'mixed race': 3.7},
'new york': {'total': 19570261, 'white': 58.3, 'hispanic or latino': 17.6, 'black': 15.9, 'american_indian_or_alaska_native': 0.6, 'asian': 7.3, 'native hawaiian or pacific islander': 0.0, 'mixed race': 3.0},
'north carolina': {'total': 9656401, 'white': 65.3, 'hispanic or latino': 8.4, 'black': 21.5, 'american_indian_or_alaska_native': 1.3, 'asian': 2.2, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.2},
'north dakota': {'total': 699628, 'white': 88.9, 'hispanic or latino': 2.0, 'black': 1.2, 'american_indian_or_alaska_native': 5.4, 'asian': 1.0, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.8},
'ohio': {'total': 11544225, 'white': 81.1, 'hispanic or latino': 3.1, 'black': 12.2, 'american_indian_or_alaska_native': 0.2, 'asian': 1.7, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.1},
'oklahoma': {'total': 3814820, 'white': 68.7, 'hispanic or latino': 8.9, 'black': 7.4, 'american_indian_or_alaska_native': 8.6, 'asian': 1.7, 'native hawaiian or pacific islander': 0.1, 'mixed race': 5.9},
'oregon': {'total': 3899353, 'white': 78.5, 'hispanic or latino': 11.7, 'black': 1.8, 'american_indian_or_alaska_native': 1.4, 'asian': 3.7, 'native hawaiian or pacific islander': 0.3, 'mixed race': 3.8},
'pennsylvania': {'total': 12763536, 'white': 79.5, 'hispanic or latino': 5.7, 'black': 10.8, 'american_indian_or_alaska_native': 0.2, 'asian': 2.7, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.9},
'puerto rico': {'total': 3548397, 'white': 0.7, 'hispanic or latino': 99.0, 'black': 12.4, 'american_indian_or_alaska_native': 0.5, 'asian': 0.2, 'native hawaiian or pacific islander': 0.0, 'mixed race': 3.3},
'rhode island': {'total': 1050292, 'white': 76.4, 'hispanic or latino': 12.4, 'black': 5.7, 'american_indian_or_alaska_native': 0.6, 'asian': 2.9, 'native hawaiian or pacific islander': 0.1, 'mixed race': 3.3},
'south carolina': {'total': 4723723, 'white': 64.1, 'hispanic or latino': 5.1, 'black': 27.9, 'american_indian_or_alaska_native': 0.4, 'asian': 1.3, 'native hawaiian or pacific islander': 0.1, 'mixed race': 1.7},
'south dakota': {'total': 833354, 'white': 84.7, 'hispanic or latino': 2.7, 'black': 1.3, 'american_indian_or_alaska_native': 8.8, 'asian': 0.9, 'native hawaiian or pacific islander': 0.0, 'mixed race': 2.1},
'tennessee': {'total': 6456243, 'white': 75.6, 'hispanic or latino': 4.6, 'black': 16.7, 'american_indian_or_alaska_native': 0.3, 'asian': 1.4, 'native hawaiian or pacific islander': 0.1, 'mixed race': 1.7},
'texas': {'total': 26059203, 'white': 45.3, 'hispanic or latino': 37.6, 'black': 11.8, 'american_indian_or_alaska_native': 0.7, 'asian': 3.8, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.7},
'utah': {'total': 2855287, 'white': 80.4, 'hispanic or latino': 13.0, 'black': 1.1, 'american_indian_or_alaska_native': 1.2, 'asian': 2.0, 'native hawaiian or pacific islander': 0.9, 'mixed race': 2.7},
'vermont': {'total': 626011, 'white': 94.3, 'hispanic or latino': 1.5, 'black': 1.0, 'american_indian_or_alaska_native': 0.4, 'asian': 1.3, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.7},
'virginia': {'total': 8185867, 'white': 64.8, 'hispanic or latino': 7.9, 'black': 19.4, 'american_indian_or_alaska_native': 0.4, 'asian': 5.5, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.9},
'washington': {'total': 6897012, 'white': 72.5, 'hispanic or latino': 11.2, 'black': 3.6, 'american_indian_or_alaska_native': 1.5, 'asian': 7.2, 'native hawaiian or pacific islander': 0.6, 'mixed race': 4.7},
'west virginia': {'total': 1855413, 'white': 93.2, 'hispanic or latino': 1.2, 'black': 3.4, 'american_indian_or_alaska_native': 0.2, 'asian': 0.7, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.5},
'wisconsin': {'total': 5726386, 'white': 83.3, 'hispanic or latino': 5.9, 'black': 6.3, 'american_indian_or_alaska_native': 1.0, 'asian': 2.3, 'native hawaiian or pacific islander': 0.0, 'mixed race': 1.8},
'wyoming': {'total': 576412, 'white': 85.9, 'hispanic or latino': 8.9, 'black': 0.8, 'american_indian_or_alaska_native': 2.4, 'asian': 0.8, 'native hawaiian or pacific islander': 0.1, 'mixed race': 2.2}
}
ev_per_person = dict(
(state, float(swing_states.get(state, 0)) / (states[state]['total']))
for state in states
)
black_people_per_state = dict(
(state, (float(states[state]['black']) / 100) * states[state]['total'])
for state in states
)
white_people_per_state = dict(
(state, (float(states[state]['white']) / 100) * states[state]['total'])
for state in states
)
black_evs = [
(black_people_per_state[state], ev_per_person[state])
for state in states
]
white_evs = [
(white_people_per_state[state], ev_per_person[state])
for state in states
]
average_black_ev_power = weighted_average(black_evs)
average_white_ev_power = weighted_average(white_evs)
print "The average black person controls %s electoral votes"%average_black_ev_power
print "The average white person controls %s electoral votes"%average_white_ev_power
print "and the ratio is: %s"%(average_white_ev_power/average_black_ev_power)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment