Last active
November 14, 2016 16:28
-
-
Save skatenerd/89f490b64cc7547282deb27bf2d75a65 to your computer and use it in GitHub Desktop.
whose votes are worth more?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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