我正在尝试根据用户的数据创建列表。这个数据是一个16个问题的调查,所以我想把数据分成16个答案的列表,或者只是answers = ['No data available
的列表。到目前为止,我的代码如下所示。
studentanswers = []
contains_data = False
temp = []
for i in answers:
if i == 'No data available':
if contains_data:
studentanswers.append(temp)
temp = []
studentanswers.append([i])
contains_data = False
else:
studentanswers.append([i])
else:
contains_data = True
if len(temp) < 16:
temp.append(i)
else:
studentanswers.append(temp)
temp = []
contains_data = False
然而,当我迭代时,数据会得到正确的计数,并且一些数据被分配给错误的用户。例如,学生1的问题16将成为学生2的问题1.
答案 0 :(得分:0)
尝试以下几点:
while answers:
if answers[0] = 'No data available':
studentanswers.append(['No data available'])
answers = answers[1:]
else:
studentanswers.append(answers[:16])
answers = answers[16:]
答案 1 :(得分:-1)
你的问题不清楚,如果我做对了,你想要一份每个学生答案的清单。
如果是这种情况,那么这应该足够了:
studentanswers = list()
for x in range(len(answers)/16):
sudentsanswers.append(list(answers[y*16:(y+1)*16])
这假设每位学生有16个答案。
编辑,我刚看到你的其他评论,这将有效:
studentanswers = list()
studentanswers.append(list())
c = int(0)
for x in range(len(answers)):
if (c<16 && x != "No data available"):
studentanswers[len(studentanswers)-1].append(x)
c+=1
else:
c=0
studentanswers.append(list())
studentanswers[len(studentanswers)-1].append(x)
if x == "No data available":
studentanswers.append(list())