我有这样的代码:
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}
我不确定这种数据分析(?)是什么,甚至是什么谷歌来实现我想要的。
感谢您的帮助。
答案 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代码!):
根据player_n_guesses [0]中的值检查获胜者[0]并将结果记录在名为red的变量中(例如,如果player_n_guesses [0] ==获胜者[0]:红色+ = 1)
使用嵌套for循环遍历所有内容,然后使用格式化方法创建总计列表。
我希望有一种更直接比较矩阵的更有效的方法 - 尝试搜索'字符串矩阵比较python'或类似的东西。