求助如何打乱列表顺序并从中提取每一个元素且不重复?

我的这个程序中需要每一个元素对应一个颜色

positive=[u'友好',u'热情',u'真诚',u'宽容',u'信任',u'理解',u'陪伴',u'忠诚',u'关怀',u'和     睦']
negative=[u'敌对',u'冷漠',u'虚伪',u'刻薄',u'怀疑',u'刁难',u'抛弃',u'背叛',u'排斥',u'虚假']

stimList = []
for word in ['P','N']:
for color in ['red','yellow','blue','green']:
stimList.append( {'word':word,'color':color} )

这里我设置了10次循环并打乱,也就是总共元素出现80次,每个元素出现4次

trials = data.TrialHandler(stimList, 10, method='random')
trials.data.addDataType( ['rt', 'corr','resp'] )

在开始程序前用random.randint进行随机抽取

j=positive[random.randint(0,9)]
x=negative[random.randint(0,9)]
if thisTrial['word']=='P': textWord = j
elif thisTrial['word']=='N': textWord = x

输出后的程序中有的元素重复颜色出现五六次,有的元素指出现了一次。
而我需要的是每个元素都只出现4次并且这4次各对应1个颜色,这里需要怎么修改?

1个回答

循环4次
抽取一个元素
将抽取的元素放进新表
把列表里的和这个元素一样的全部删除

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐