如何将random.choice转化为整数进行实验?
How to convert random.choice into integer for experiment?
我正在使用 Python 设计一个心理物理学实验,其中我有听觉刺激(音节)、文本刺激(对)和正确答案都存储在一个 csv 文件中。
我正在努力做到不连续呈现相同的文本刺激(例如,听觉刺激是 1、2、3、4,文本刺激是你听到“1”还是“2”所以我尽量避免连续两次呈现后一种刺激。
我创建了以下代码:
Parameters_file = pd.read_csv('Parameters.csv', header=0)
Pair_list = Parameters_file['Pair']
syllable_list = Parameters_file['Stimulus']
corr_Ans_list = Parameters_file['corrAns']
past_syllable = [0] #To provide an initial auditory stimulus.
for i in range(len(syllable_list)):
list_1 = [2,3,4,5]
list_2 = [0,1,4,5]
list_4 = [0,1,2,3]
if past_syllable[-1] == 0:
trial_index = randint(2,5,1)
elif past_syllable[-1] == 1:
trial_index = random.choice('list_1')
elif past_syllable[-1] == 2:
trial_index = random.choice('list_2')
elif past_syllable[-1] == 3:
trial_index = random.choice('list_2')
else:
trial_index = random.choice('list_3')
past_syllable += str(trial_index)
index = int(trial_index)
Pair = Pair_list[index]
corrAns = corr_Ans_list[index]
但是,我不断收到以下错误:
invalid literal for int() with base 10: 't'
有人可以帮忙吗?谢谢!
random.choice('list_2')
去掉引号,因为上面只是一个字符串,返回"t"是因为它选择了"list_2"中的第4个元素,即t.
我正在使用 Python 设计一个心理物理学实验,其中我有听觉刺激(音节)、文本刺激(对)和正确答案都存储在一个 csv 文件中。
我正在努力做到不连续呈现相同的文本刺激(例如,听觉刺激是 1、2、3、4,文本刺激是你听到“1”还是“2”所以我尽量避免连续两次呈现后一种刺激。
我创建了以下代码:
Parameters_file = pd.read_csv('Parameters.csv', header=0)
Pair_list = Parameters_file['Pair']
syllable_list = Parameters_file['Stimulus']
corr_Ans_list = Parameters_file['corrAns']
past_syllable = [0] #To provide an initial auditory stimulus.
for i in range(len(syllable_list)):
list_1 = [2,3,4,5]
list_2 = [0,1,4,5]
list_4 = [0,1,2,3]
if past_syllable[-1] == 0:
trial_index = randint(2,5,1)
elif past_syllable[-1] == 1:
trial_index = random.choice('list_1')
elif past_syllable[-1] == 2:
trial_index = random.choice('list_2')
elif past_syllable[-1] == 3:
trial_index = random.choice('list_2')
else:
trial_index = random.choice('list_3')
past_syllable += str(trial_index)
index = int(trial_index)
Pair = Pair_list[index]
corrAns = corr_Ans_list[index]
但是,我不断收到以下错误:
invalid literal for int() with base 10: 't'
有人可以帮忙吗?谢谢!
random.choice('list_2')
去掉引号,因为上面只是一个字符串,返回"t"是因为它选择了"list_2"中的第4个元素,即t.