Reputation: 467
Here is my code:
if condition == '1':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
c = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '2':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
c = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '3':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
e = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
elif condition == '4':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
e = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '5':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
d = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '6':
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
d = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
elif condition == '7':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '8':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
elif condition == '9':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
elif condition == '10':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
e = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '11':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
c = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '12':
d = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '13':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '14':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '15':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '16':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
e = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '17':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
d = glob.glob("DDtest/targetimagelist2/*")
e = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '18':
c = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
e = glob.glob("DDtest/targetimagelist4/*")
elif condition == '19':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '20':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist2/*")
a = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
elif condition == '21':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist4/*")
elif condition == '22':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
c = glob.glob("DDtest/targetimagelist2/*")
d = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '23':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist4/*")
d = glob.glob("DDtest/targetimagelist2/*")
c = glob.glob("DDtest/distractorimagelist3/*")
a = glob.glob("DDtest/targetimagelist4/*")
elif condition == '24':
e = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist3/*")
d = glob.glob("DDtest/targetimagelist2/*")
a = glob.glob("DDtest/distractorimagelist3/*")
c = glob.glob("DDtest/targetimagelist4/*")
Basically what this does it is draws from a different list based on all combinations of a,c,d,e and makes a and b correspond. This code works fine, but it isn't very beautiful. I was wondering if anyone had any advice I do the same thing in fewer lines of code. More than anything I'm just trying to expand my knowledge of writing code, so if you know there is a more eloquent way of writing this let me know. :)
Upvotes: 0
Views: 90
Reputation: 701
The built-in itertools
library has a function for permutations without repetitions:
#!/usr/bin/env python2
import itertools
import glob
p = [
glob.glob("DDtest/targetimagelist1/*"),
glob.glob("DDtest/distractorimagelist4/*"),
glob.glob("DDtest/targetimagelist2/*"),
glob.glob("DDtest/distractorimagelist3/*"),
glob.glob("DDtest/targetimagelist4/*"),
]
perm = itertools.permutations(p)
print(len(perm))
=> 120 permutations
Upvotes: 1
Reputation: 1765
Not sure what you meant by "make a and b correspond", but maybe this would work:
from itertools import permutations
from random import choice
globs = [glob.glob("DDtest/targetimagelist1/*"),
glob.glob("DDtest/distractorimagelist1/*"),
glob.glob("DDtest/targetimagelist2/*"),
glob.glob("DDtest/distractorimagelist3/*"),
glob.glob("DDtest/targetimagelist4/*")]
glob_permutations = list(permutations(globs))
a, b, c, d, e = choice(glob_permutations)
Upvotes: 2
Reputation: 27283
Maybe like that?
setup = {'1': ('1','1','2','3','4'),
'2': ('1','1','2','3','4'),
#...
}
a = glob.glob("DDtest/targetimagelist" + setup[condition][0] + "/*")
b = glob.glob("DDtest/distractorimagelist" + setup[condition][1] + "/*")
c = glob.glob("DDtest/targetimagelist" + setup[condition][2] + "/*")
d = glob.glob("DDtest/distractorimagelist" + setup[condition][3] + "/*")
e = glob.glob("DDtest/targetimagelist" + setup[condition][4] + "/*")
Upvotes: 0