尝试连接字符串并分别将总和添加到总和中

时间:2017-11-17 03:41:07

标签: python loops for-loop

我之前发布过这篇文章并试图弄清楚这在演示方面是否更有效。我试图连接字符串并分别从列表中求和整数。出于某种原因,我没有得到我预期的输出

l = ['magical unicorns', 19, 'hello', 98.98, 'world']

comb_str = ''
comb_int = 0

for i in l:
    if type(i) is 'str':
        comb_str = comb_str + 'i'
    elif type(i) is 'int':
        comb_int += i
    else:
        pass

print comb_str
print comb_int

3 个答案:

答案 0 :(得分:3)

"类型(i)是' str'"永远不会是真的。 尝试使用类似isinstance(i, str)的内容。类似于int检查。实际上,type(i) is str也会起作用。请注意,str不在引号中。

答案 1 :(得分:0)

用于连接字符串:

print "".join(filter(lambda x: isinstance(x, basestring), l))

输出:

'magical unicornshelloworld'

求和整数:

import numbers
print sum(filter(lambda x: isinstance(x, numbers.Number), l))

输出:

117.98

答案 2 :(得分:0)

使用isinstance函数而不是类型。 这里测试的代码:

l = ['magical unicorns', 19, 'hello', 98.98, 'world']
con=''
sum=0
for i in l:
    print (i)
    if isinstance(i, str):
       con = con+str(i)
    elif isinstance(i, int):
       sum = sum+i
    else:
       pass
print (con)
print (sum)