如何计算列表中的值3

时间:2016-10-03 14:22:13

标签: python list dictionary counting

我有这样的代码:

winners = [red, blue, yellow]

player_1_guesses = [red, green, orange]
player_2_guesses = [red, blue, orange]
player_3_guess = [red, green, yellow]

我想计算winners列表中player_x_guesses中每个值的显示次数。所以我希望看到类似的东西:

totals = {'red': 3, 'blue': 1, 'yellow': 1}

我不确定这种数据分析(?)是什么,甚至是什么谷歌来实现我想要的。

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

尝试这样做:

all_guesses = player_1_guess + player_2_guess + player_3_guess
dct = {i:all_guesses.count(i) for i in winners}

输出:

{'blue': 1, 'yellow': 1, 'red': 3}

使用collections

from collections import Counter

dct = Counter(word for word in all_guesses if word in winners)

答案 1 :(得分:0)

不确定我是否违反规则,但我的方法是搜索 “python比较字符串数组”,我得到了这个:Compare string with all values in array

您有一个列表/数组字符串要与其他三个列表/数组进行比较。

假设你想知道有多少玩家猜到了正确的颜色和正确的位置。换句话说,对于你的例子,player_1_guesses = [green,red,orange]不会算作红色的正确猜测,因为它不在第一个位置。

在我的脑海中,代码的逻辑就像这样(顺便说一下,这不是python代码!):

  1. 获得胜利者[0],即“红色”
  2. 根据player_n_guesses [0]中的值检查获胜者[0]并将结果记录在名为red的变量中(例如,如果player_n_guesses [0] ==获胜者[0]:红色+ = 1)

  3. 使用嵌套for循环遍历所有内容,然后使用格式化方法创建总计列表。

  4. 我希望有一种更直接比较矩阵的更有效的方法 - 尝试搜索'字符串矩阵比较python'或类似的东西。