将列表中的所有数字加在一起(不是求和)。 Python 3.3.2

时间:2013-09-15 19:51:46

标签: python list python-3.x

说我有这个清单:

alist = [2, 0, 1]

如何将名为“hahaha”的字符串设为例如201?不是5(总和)。 我需要像“

这样的东西吗?
for number in alist .....

谢谢!

4 个答案:

答案 0 :(得分:4)

您可以将''.join()map()结合使用:

>>> alist = [2, 0, 1]
>>> ''.join(map(str, alist))
'201'

答案 1 :(得分:3)

这是你要找的吗?

hahaha = ''.join([str(num) for num in alist])
print hahaha  # '201'

解释发生了什么:

部分[str(num) for num in alist]被称为“列表理解” - 它就像一个非常精简的for-loop,它将一个列表转换为另一个列表。在这种情况下,它会将[2, 0, 1]变为['2', '0', '1']

(当然,我们可以把它写成for循环而不是列表理解,但它需要更多的代码行,并且输入会有点繁琐)

部分''.join(list)获取字符串列表,并将所有字符串与空字符串一起粘贴为分隔字符。如果我要'+'.join([str(num) for num in alist]),则输出将为'2+0+1'

因此,该行可以被认为是一系列转换,可以将初始列表缓慢转换为字符串。

[2, 0, 1] -> ['2', '0', '1'] -> '201'

我们也可以将整个过程包装成一个函数,如下所示:

def make_str(list):
    return ''.join([str(num) for num in list])

print make_str([4, 3, 2, 9])  # '4329'
print make_str([9, 0, 0, 9])  # '9009'

答案 2 :(得分:1)

怎么样:

>>> alist = [2, 0, 1]
>>> "".join(str(i) for i in alist)
'201'

join()方法中的代码是generator expression

答案 3 :(得分:1)

字符串连接函数需要一个字符串列表。

''.join([str(i) for i in alist])