[英]Randomizing in all possible combinations in Python
這是我的代碼:
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/*")
基本上,這是基於a,c,d,e的所有組合從不同的列表中提取的,並使a和b對應。 該代碼可以正常工作,但不是很漂亮。 我想知道是否有人建議我用更少的代碼行做同樣的事情。 最重要的是,我只是想擴展我的代碼編寫知識,因此,如果您知道一種更雄辯的編寫方法,請告訴我。 :)
不確定“使a和b對應”是什么意思,但是也許可以:
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)
#!/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個排列
也許那樣嗎?
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] + "/*")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.