gpt4 book ai didi

Python 列表追加

转载 作者:行者123 更新时间:2023-11-30 23:31:03 25 4
gpt4 key购买 nike

我正在尝试解决这里的问题,但遇到了困难。基本上我想做的是这样的:我得到了一本格式如下的字典:

dr= {'student1067': ['0', '0', '0'], 'student1068' : ['1', '2', '5'], 'student1069': ['7','6','2'],.....

dr 是一个字典,其中键是学生身份(例如:“student1068”),值是字符串列表,其中每个元素是对特定书籍的评分。

然后我会得到一个格式相似的列表:

SimList= [('student1067', 40), ('student1068', 40), ('student1069', 35).......]

SimList 是一个元组列表,其中元组的第一个元素是学生身份,第二个元素是相似度评级。

我基本上想做的是遍历 SimList 中每个元组的第一个元素,并在 dr 中查找相同的键。如果第一个元素和键匹配,我想使用 SimList 中元组的第二个元素来乘以字典值的所有元素。因此,例如,对于学生 1067,字典中的值将全部乘以 40。对于学生 1068,字典中的值也将全部乘以 40。对于学生 1069,所有值都将乘以 35。最后,我想要一个将所有这些值加在一起的列表。

student1067---40 * [0,0,0] = [0,0,0]

student1068---40 * [1,2,5] = [40,80,200]

student1069---35 * [7,6,2] = [245,210,70]

--------------------------------

Final List= [285, 290, 270]

所以基本上我希望最终列表结果是通过添加各个索引值来获得的。到目前为止我的代码如下所示:

    FinalList=[]
for item in SimList:
CurrentList=[]
if item[0] in dr:
CurrentList.append(item[0]*int(x) for x in dr[item[0]])
if FinalList==[]:
FinalList=CurrentList
else:
FinalList=[FinalList[i] + CurrentList[i] for i in range(len(FinalList))]
print FinalList

因此,FinalList 将是我的最终列表,而 CurrentList 是为每个学生创建的临时列表,每次函数运行时都会恢复为空列表。但是,我认为 FinalList 的“if”和“else”语句的位置是错误的,因为我的代码无法正常工作。你们能帮帮我吗?

非常感谢,我很抱歉问了这么长的问题。

最佳答案

FinalList = [(k, [int(i)*v for i in dr[k]]) for k, v in SimList]
TotalList = [sum(x) for x in zip(*(j for i in FinalList for j in i[1:]))]

关于Python 列表追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com