I have the following arrays:
x=-1 y=1 a11 = [x,1] a12 = [y,1] a13 = [x,2] a21 = [y,1] a22 = [x,2] a23 = [y,2] a31 = [x,1] a32 = [y,2] a33 = [x,2]
And I need to run each array through the following if-else statement:
votes_1 = [] votes_2 = [] if a11[1] == 1: votes_1.append(a11[0]) else: votes_2.append(a11[0])
How can I do this without writing an if-else statement for each array? It’s manageable for now, but I plan to have 25 of these arrays, and I feel like there’s a better way.
Advertisement
Answer
Put all of your votes into a list instead of in 25 different named variables.
x=-1
y=1
a = [
    [x,1],
    [y,1],
    [x,2],
    [y,1],
    [x,2],
    [y,2],
    [x,1],
    [y,2],
    [x,2],
]
votes_1 = [i for i, j in a if j == 1]
votes_2 = [i for i, j in a if j != 1]
You can do the same thing with votes.  For example:
votes = {
    v: [i for i, j in a if j == v]
    for v in (1, 2)
}
Now votes[1] and votes[2] have the same contents as votes_1 and votes_2 in the earlier version of the code, but you can expand this to cover any number of different voting options just by changing that for v in (1, 2) line.