python - 识别数组中的相似实例并合并它们

标签 python arrays python-3.x

我有一个数组数组,像这样......

[['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Summer Smith', 4], ['Summer Smith', 4], ['Summer Smith', 4], ['Abradolf Lincler', 4], ['Summer Smith', 4], ['Summer Smith', 4]]

我希望能够扫描每个数组,如果元素 0 已经存在于数组中,则合并它们并将第一个元素加在一起。例如,有 5 个 Summer Smith 实例。代码应该识别出它是同一名球员,因此将所有 Summer Smith 得分相加,使 Summer Smith 总得分为 20。它应该为每个球员这样做。所以这一切看起来像,例如,

[['Harry',20], ['Jake', 16]]....

我试着...

for array in arrays:
        if array[0] in [not sure what to do now]

最佳答案

考虑使用 dictionary跟踪每个玩家的得分总和:

scores = [['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Scary Terry', 4], ['Scary Terry', 4], ['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Abradolf Lincler', 4], ['Summer Smith', 4], ['Summer Smith', 4], ['Summer Smith', 4], ['Abradolf Lincler', 4], ['Summer Smith', 4], ['Summer Smith', 4]]

grouped_scores = {}
for name, score in scores:
    if name not in grouped_scores: grouped_scores[name] = score
    else: grouped_scores[name] += score

然后您可以将结果作为列表的列表取回:

merged_scores = [list(t) for t in grouped_scores.items()]
print(merged_scores)
# [['Summer Smith', 20], ['Scary Terry', 20], ['Abradolf Lincler', 32]]

关于python - 识别数组中的相似实例并合并它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53291206/

相关文章:

python - Django 南 : Migrating FK from another table

python 代码无法使用 .kv 文件运行

python - 即使我的 MQTT 客户端未连接,我如何继续我的程序运行?

php - 如何从 MySQL 表中提取多行并自动使用所有行来完成同一件事?

python - Django 过滤器 LIKE 数组 ORM 中的查询(图标)

python-3.x - Python Bokeh 文件输入小部件

python - 如何将输入读取为数字?

javascript - 使用 Javascript 访问 NASA api

javascript - 将随机数存储在长度为 25 的数组中

python - pygame 移动 blitted 文本