我理解的以及一个思路:
problem = [
['多选题', '多选题', '多选题', '多选题', '多选题文字', '多选题文字', '多选题文字', '单选题'],
['1', '1', '1', '1', '2', '2', '文字', '3'],
[0.0, 1.0, 1.0, 0.0, 0.0, 1.0, '文字2', 2.0],
[1.0, 1.0, 1.0, 0.0, 0.0, 1.0, '文字3', 3.0],
]
rule = problem[0]
nums = problem[1]
answers = problem[2:]
def generate_answer_string(answer):
answer_string = ''
index = 0
rule_length = len(rule)
while index < rule_length:
question_type = rule[index]
question_num = nums[index]
# 添加题号 + '$'
answer_string += question_num + '$'
# 多选题
if question_type == '多选题':
for i in range(4):
if answer[index] == 1.0:
answer_string += str(i + 1) + '|'
index += 1
answer_string = answer_string.rstrip('|')
# 多选文字题
elif question_type == '多选题文字':
for i in range(2):
if answer[index] == 1.0:
answer_string += str(i + 1)
index += 1
answer_string += '^' + answer[index]
index += 1
# 单选题
elif question_type == '单选题':
answer_string += str(int(answer[index]))
index += 1
# 添加结尾分割符 '}'
answer_string += '}'
return answer_string
for answer in answers:
# 去除最后一个 '}'
answer_string = generate_answer_string(answer).rstrip('}')
print(answer_string)