【发布时间】:2019-02-19 10:14:35
【问题描述】:
假设我有一个如下列表:
ExampleList = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
如何只添加数字?
【问题讨论】:
假设我有一个如下列表:
ExampleList = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
如何只添加数字?
【问题讨论】:
您可以使用以下生成器表达式,它将所有ints 添加到列表中:
l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
sum(i for i in l if isinstance(i,int))
# 80
【讨论】:
这将处理所有数字:)
>>> import numbers
>>> x
[2, 4, 7, 4, 2, 'randomword', 23, 42, 2, 1, 4, -53, 'newrandomword', 32, 5, 2, 3, 1.02]
>>> sum(y for y in x if isinstance(y, numbers.Number))
81.02
【讨论】:
也可以使用filter()函数:
l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
sum(filter(lambda x: isinstance(x, int), l))
# 80
【讨论】:
以编程方式你可以总结如下:
l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
s=0
for i in l:
try:
s+=int(i)
except ValueError:
print('not a rumber')
print('sum of number is:',s)
【讨论】: