Python:如何确定列表中有多少相同的元素在后面?

2024-05-22 03:02:05 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我们的讲座,我们需要创建一个程序。 现在我们需要帮助。你知道吗

假设我们有以下列表:

[['W'], ['B'], ['B'], ['W'], ['B'], ['B'], ['B']]

现在,每个字母('W','B')都有一个特定的值 只要有两个字母在后面,玩家就可以得到分数。 示例:

在上面的列表中,球员“W”得不到任何分数,但球员“B”得5分。第二、三元素后2分,第五、六、七元素后3分。你知道吗

我希望我说的很清楚:)

那么,我如何确定,有多少元素在彼此之后具有相同的值呢?你知道吗

非常感谢!你知道吗


Tags: 程序元素示例列表字母玩家分数讲座
1条回答
网友
1楼 · 发布于 2024-05-22 03:02:05

可以使用^{}迭代列表中相等元素的“组”。只需确定这些组的长度并相应增加分数:

lst = ['W', 'B', 'B', 'W', 'B', 'B', 'B']
scores = {c: 0 for c in set(lst)}
for k, g in itertools.groupby(lst):
    n = len(list(g))
    if n > 1:
        scores[k] += n

(注意:此解决方案故意不完整,使用的输入略有不同。)

更新:任务似乎结束了;添加了完整的代码。你知道吗

相关问题 更多 >