首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >条件下列表中的元素求和(Python)

条件下列表中的元素求和(Python)
EN

Stack Overflow用户
提问于 2012-04-11 23:24:21
回答 2查看 2.2K关注 0票数 0
代码语言:javascript
复制
sum( int(i.replace(',',''))if re.search('\d',i)!=None for i in list)

我想对列表中的所有元素求和。问题是,元素是字符串,其中一些包含数字,我想将它们转换为整数,然后将它们相加。这就是为什么我需要检查字符串中是否有数字。如何将条件添加到sum函数的列表中。我还想使用sum函数,我不想只迭代列表,然后添加到一个变量中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-11 23:29:29

如何将条件添加到sum函数的列表中。

您就快到了,除了if出现在末尾:

代码语言:javascript
复制
sum(int(i.replace(',','')) for i in list if re.search(r'\d', i))

话虽如此,但总体方法并不是万无一失的。它会在混合了数字和其他字符(例如'a1')的输入上阻塞。

此外,使用逗号作为千位分隔符也不是通用的。Some locales使用它来标记小数点。在这些区域设置中,您的代码将为其中包含逗号的数字生成不正确的值。

票数 3
EN

Stack Overflow用户

发布于 2012-04-11 23:29:01

也许是这样的

代码语言:javascript
复制
def safeIntToSum(x):
    try: return int(x.replace(",",""))
    except: return 0

print sum([safeIntToSum(x) for x in list])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10109013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档