【发布时间】:2013-09-15 19:51:46
【问题描述】:
说我有这个清单:
alist = [2, 0, 1]
如何使名为“hahaha”的字符串例如等于 201 ?不是 5(总和)。 我需要类似“
for number in alist .....
谢谢!
【问题讨论】:
-
只是为了将其打印为
201,您可以这样做:print (*alist, sep='')
标签: python list python-3.x
说我有这个清单:
alist = [2, 0, 1]
如何使名为“hahaha”的字符串例如等于 201 ?不是 5(总和)。 我需要类似“
for number in alist .....
谢谢!
【问题讨论】:
201,您可以这样做:print (*alist, sep='')
标签: python list python-3.x
这就是你要找的吗?
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'
【讨论】:
字符串连接函数需要一个字符串列表。
''.join([str(i) for i in alist])
【讨论】:
怎么样:
>>> alist = [2, 0, 1]
>>> "".join(str(i) for i in alist)
'201'
join() 方法中的代码是generator expression。
【讨论】: