【问题标题】:Ranking preference of each item in a list [closed]列表中每个项目的排名偏好[关闭]
【发布时间】:2019-11-27 20:25:37
【问题描述】:

我已经离开 Python 一段时间了,请原谅这个广泛/基本的问题。

假设我有一个项目列表,它可以是任何东西。

我想编写一个程序,以两种可能的组合一次打印其中两个,并让用户选择偏好/获胜者。然后在最后打印带有某种数字偏好值的完整列表。我对排名或偏好的数学了解不多,甚至不知道这个数字会是什么样子......

基本上我从一开始就遇到了作家的障碍。关于如何构建这个或我应该研究什么的任何建议?

【问题讨论】:

  • 了解数据的作用/代表将是帮助我们提供答案的良好开端,然后我假设可能使用heapq。数据保存在 2 个长度的元组中,其中第一个元素是权重,第二个元素是数据本身。应该看起来像这样:[(0.0, data_object01), ..., (1.0, data_object0N)]。或者只是 sorted 和一些关键功能来对数据进行排序/加权。

标签: python ranking preference


【解决方案1】:

一个非常简单的方法如下所示:

initialize a scoring_list

for every element in a list
    for every element in a list

        while valid input:
            ask the question via raw_input()

            if input matches the first item
                store winner in some sort of scoring list
                tell program input is valid

            else if input matches the second item
                store winner in some sort of scoring list
                tell program input is valid

            else
                tell program input is not valid and repeat question

do some math with the scoring_list (e.g. normalization)
print( scoring_list )

很明显,很多细节都被有意遗漏了,因为这取决于编程风格和目标。例如,通过索引进行循环可能会更好,这样您就可以拥有一个带有与原始列表匹配的索引的评分列表。使用这种结构,您可以创造性地使用比直接计数更严格的统计方法来跟踪“排名”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多