首页 > 解决方案 > 将元组中的字符串转换为整数

问题描述

我想将每个元组中的第二项转换为整数,以便能够将行中的所有值相加。

compPoss = [(('A', '1'), ('B','2'), ('C', '3'), ('D', '4')), 
            (('A', '1'), ('B','2'), ('C', '3'), ('E', '5'))]

totRank = sum(n for _, n in compPoss)

类型错误:+ 不支持的操作数类型:“int”和“tuple”

尝试了不同的方法来解决这个问题,但我不断收到错误代码

结果应该是

10

11

标签: pythonpython-3.x

解决方案


您的代码几乎是正确的,您只是没有考虑到您的列表是元组的元组列表这一事实,因此您需要将其解压缩两次。然后在您sum需要转换n为整数以允许对其求和:

compPoss = [(('A', '1'), ('B','2'), ('C', '3'), ('D', '4')), 
            (('A', '1'), ('B','2'), ('C', '3'), ('E', '5'))]

totRank = [sum(int(n) for _, n in a) for a in compPoss]
print(totRank)

输出

[10, 11]

推荐阅读