Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于将一个列表的值匹配到另一个列表的顺序返回值_Python_List - Fatal编程技术网

Python 基于将一个列表的值匹配到另一个列表的顺序返回值

Python 基于将一个列表的值匹配到另一个列表的顺序返回值,python,list,Python,List,我有四份清单: user = [0,0,1,1] names = ["jake","ryan","paul","david"] disliked_index = [0,1] ranked_names = ["paul","ryan","david","jake"] 列表“用户”保存用户对列表“名称”中他们喜欢的名称的响应(1如果喜欢,0

我有四份清单:

user = [0,0,1,1]
names = ["jake","ryan","paul","david"]
disliked_index = [0,1]
ranked_names = ["paul","ryan","david","jake"]
列表“用户”保存用户对列表“名称”中他们喜欢的名称的响应(1如果喜欢,0如果不喜欢)。不喜欢的_索引保存用户在用户列表中指示为0的列表点。ranked_names根据数据集(多个学生)从最受欢迎到最不受欢迎进行排名。我试图实现的是返回用户响应他们不喜欢的最流行的名称。所以

mostpopular_unlikedname = "ryan"
到目前为止,我所做的是:

placement = []
for i in disliked_index:
    a = names[i]
    placement.append(a)
我现在有一个列表,其中包含用户不喜欢的名称

placement = ["jake","ryan"]
在这里,我的逻辑是运行一个循环,检查放置列表中的哪些名称出现在排名靠前的名称列表中,并按从最流行到最不流行的顺序添加到排名靠前的名称列表中

top_name =[]
for i in range(len(ranked_names)):
    if ranked_names[i] == placement:
        top_name.append[i]
没有任何东西会被添加到最上面的名字列表中。我被困在这一部分,想看看这是否是一个可以继续下去的方向,或者我是否应该尝试其他东西。
任何指导都将不胜感激,谢谢

您不需要为此列出
不喜欢的索引。按照这些思路做一些事情:

dis_pos = []
for name, sentiment in zip(names,user):
    if sentiment == 0:
        dis_pos.append(ranked_names.index(name))
mostpopular_unlikedname = ranked_names[min(dis_pos)]
print(mostpopular_unlikedname)
输出:

ryan

非常感谢你!这帮了我很大的忙,最后我把0改成了1,效果非常好。非常感谢!!