python - 将元组中的字符串转换为整数
问题描述
我想将每个元组中的第二项转换为整数,以便能够将行中的所有值相加。
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
解决方案
您的代码几乎是正确的,您只是没有考虑到您的列表是元组的元组列表这一事实,因此您需要将其解压缩两次。然后在您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]
推荐阅读
- java - 如果 Shutdown 发生,executorService 是否确保等待终止?
- java - WebClient 与 RestTemplate SSL 连接
- java - 添加一个包含 86,000 个组件的 JPanel
- java - 如何在 Java 中创建一个自动更正,让我在用户输入时替换它们?
- solr - 数组字段中 1 项的 Solr 查询语法
- import - 使用 Keras g;pu 2.2.4 版本时出现 Keras 导入错误
- exchange-server-2010 - Exchange 2010 - 从 OWA 访问邮箱时访问被拒绝
- ibm-cloud - 在尝试完成 IBM 课程时,我在运行“helm install --name bluecompute ibmcase/bluecompute-ce”时遇到问题
- javascript - 如何检查 chrome 中的 console.log 输出?需要调试一个使用 XMLHttpRequest 的 .js 文件
- node.js - Formik + Yup 号码验证