2016-05-22 39 views
-2

字符串现在我有一个列表转换列表到python3

>>> deints 
[10, 10, 10, 50] 

我想打印它作为10.10.10.50。我把它作为

方法1

>>> print(str(deints[0])+'.'+str(deints[1])+'.'+str(deints[2])+'.'+str(deints[3])) 
10.10.10.50 

是否有我们可以acheivie这个其他方法吗?

谢谢

+0

'打印( '' 加盟(图(STR,deints)))转换列表为字符串]的' – styvane

+1

可能的复制(http://stackoverflow.com/questions/2906092/converting -a-list-to-a-string) – PyNEwbie

回答

3

你可以做到这一点:

print('.'.join(str(x) for x in deints)) 
+0

谢谢。即使它是为Python 2我明白我需要添加,使其运行在python 3 –

+0

@Neapolitan [你错了。](http://stackoverflow.com/a/9061024/1672429) –

2

这是非常简单。看看str.join

print '.'.join([str(a) for a in deints]) 

引文从文档:

str.join(迭代器)

返回一个字符串,在该字符串的串联可迭代的可迭代的。元素之间的分隔符是提供此方法的字符串。

+0

你能解释一下吗 –

+0

@Raja,它只是连接插入句点的所有元素作为分隔符。您还需要先将每个数字转换为一个字符串。 – ForceBru

-1

将它们转换为字符串,然后加入它们。尝试使用:

".".join([str(x) for x in x]) 
3

您可以使用字符串join方法和对数据的列表,以字符串先转换。

>>> '.'.join(map(str, deints)) 
'10.10.10.50' 

join取的字符串作为一个分隔符并连接列表的每个元件之间的这种分隔符的内容。

+0

关心解释downvote? – Matthias

+0

我不是下来的选民,但这里的问题是你需要''。'。加入' – ForceBru

+0

啊,对。但抽象应该是可能的。这很有趣,[第一次我回答这种问题](http://stackoverflow.com/questions/12053236/python-equivalent-for-phps-implode/12053276#12053276)我得到了积极的声誉... – Matthias

1

显然str.join()是最短的路

'.'.join(map(str, deints)) 

,或者如果你不喜欢map()使用列表理解

'.'.join([str(x) for x in deints]) 

你也可以做手工,使用*转换的deints列表成系列函数参数

'{}.{}.{}.{}'.format(*deints) 

或使用functools.reducelambda功能

reduce(lambda y, z: '{}.{}'.format(y, z), x) 

所有返回

'10.10.10.50' 
0

只是一个非join解决方案。

>>> print(*deints, sep='.') 
10.10.10.50