Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby 根据位置对多个列表中的项目进行排序_Ruby_List_Sorting - Fatal编程技术网

Ruby 根据位置对多个列表中的项目进行排序

Ruby 根据位置对多个列表中的项目进行排序,ruby,list,sorting,Ruby,List,Sorting,我有多个列表,其中的元素可能出现在一个或多个列表中。我需要将列表排序为一个列表,显示总体排名。 例如: 所以,很明显,汽车将排名第一。但是我应该寻找什么来在列表中排列这些项目呢 我看过一些C代码,我认为这些代码显示了它是如何完成的,但我不理解。我可以使用Ruby,或者甚至Python来解决这个问题,但算法是我一直在努力寻找的。即使是一个Excel公式也可以工作 有人能给我指出正确的方向吗?第1步:在excel中反复浏览单词列表。 将单词存储为字典键 如果找到字典键,则将排名号添加到值中。如果未找

我有多个列表,其中的元素可能出现在一个或多个列表中。我需要将列表排序为一个列表,显示总体排名。
例如:

所以,很明显,
汽车
将排名第一。但是我应该寻找什么来在列表中排列这些项目呢

我看过一些
C
代码,我认为这些代码显示了它是如何完成的,但我不理解。我可以使用
Ruby
,或者甚至
Python
来解决这个问题,但算法是我一直在努力寻找的。即使是一个
Excel
公式也可以工作


有人能给我指出正确的方向吗?

第1步:在excel中反复浏览单词列表。 将单词存储为字典键

如果找到字典键,则将排名号添加到值中。如果未找到字典键,则为其创建一个键,并添加排名编号

Eg.,.  

if word in dict.keys():
   dict[word] += rank_number
else:
   dict[word] = rank_number

步骤2:根据值(从低值到高值)对字典进行排序。

您需要指定一个排名度量。例如,您可以根据每个列表中的排名总和对项目进行排名。那么,“汽车”的总排名是2+1+2=5。这是一个好的排名标准吗?我怎么知道?此外,如果某些元素没有出现在所有列表中,则该度量值存在问题。关键是你必须决定你想要用什么标准来决定一个整体排名。这不是读者可以推荐的。而且,没有这样的措施我们也帮不了你。嗨,卡里。我认为标准是困难的。我认为给汽车2+1+2=5真的不管用。也不会给出列表中最高的一个较低的分数,并把名单上的“最低分数”列为最高排名,因为它不考虑没有出现的项目。列表的长度也不同。可能太复杂了。虽然理论上很简单:与其他项目相比,在列表中显示得越高的项目往往排名越高。假设排名第一(1)的项目得到100分。第二名的物品可以得到90件,第三名的物品可以得到80件,以此类推。然后我把“分数”加在一起,分数最高的项目在最终列表中排名第一。Ruby中有没有一个好的方法可以做到这一点?(列表将是纯文本文件或ruby程序的输出。秩将只是列表中的位置)注意“ruby”标记的存在和“Excel”标记的缺失。我是否应该始终放置Excel标记,即使我更喜欢在ruby中解决这个问题?我是StackOverflow的新手,所以请检查一下。将解决方案保留在excel之外会容易得多,但当然,如果这是我唯一能做到的方法,那就足够了。我在那里添加了excel作为最后手段。提问者决定什么标签是合适的,并将其作为问题的一部分进行分类。这个问题有一个Ruby标记这一事实表明提问者想要使用Ruby来解决问题的答案。
Eg.,.  

if word in dict.keys():
   dict[word] += rank_number
else:
   dict[word] = rank_number