我从问卷中得到了分数:
list= [1, 2, 2, 4, 1, 4, 1, 3, 2, 2, 2, 1, 1, 1, 4, 3, 4, 2, 1, 1, 1, 1, 1, 2, 2, 2, 4, 1, 4, 1, 2, 4, 4, 4, 4, 4, 2, 3, 2, 3, 3, 3]
某些问题需要逆向评分。 “Rscores”是需要反向评分的索引列表,这意味着对于这些分数,如果是1,则需要用4替换,如果是2,则需要用3替换。你知道吗
Rscores = [1, 6, 11, 16, 21, 28, 33, 38, 43, 49, 57, 8, 46, 2, 7, 12, 17, 22, 25, 35, 40]
我试过这个方法,还有很多不同的方法,但都不管用:
for Rscores in list:
if list[Rscores] == 1:
list[Rscores] = 4
elif list[Rscores] == 2:
list[Rscores] = 3
elif list[Rscores] == 3:
list[Rscores] = 2
elif list[Rscores] == 4:
list[Rscores] = 1
如果有人能帮忙,我将非常感激。 提前谢谢
这将创建一个新列表,并更正必要的分数。你知道吗
enumerate
产生一个成对序列(i,x),其中i
是元素索引,x
是它的值。5-x if i in Rscores else x
是标准索引的得分,是Rscores
列表中索引得分的倒数。你知道吗我重命名了您的列表以避免“隐藏”Python类型的名称。如果
Rscores
是一个集合,您的代码可能会运行得稍微快一点,但它并不需要优化。你知道吗它在工作
希望能帮上大忙
我认为您列出的示例中的一个问题是,
Rscores
中的索引超出了列表的范围。(57被列为要反转的索引,但它不能被反转,因为len(L)==42
。)相关问题 更多 >
编程相关推荐