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.
CodePudding user response:
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.