关于python:将列表转换为python3中的字符串

convert list into string in python3

现在我有个单子

1
2
>>> deints
[10, 10, 10, 50]

我想把它打印成10.10.10.50。我做到了

方法1

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

我们还有其他办法来解决这个问题吗?

谢谢你


您可以对字符串使用join方法,并且必须首先将列表中的数据转换为字符串。

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

join将字符串作为分隔符,并将列表内容与每个元素之间的分隔符连接起来。


您可以通过以下方式完成:

1
print('.'.join(str(x) for x in deints))


这很简单。看一下str.join

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

文件引用:

str.join(iterable)

Return a string which is the concatenation of the strings in the iterable iterable. The separator between elements is the string providing this method.


显然,str.join()是最短的途径

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

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

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

您也可以手动执行,使用*deints列表转换为一系列函数参数。

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

或者使用functools.reducelambda功能

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

全部返回

1
'10.10.10.50'

只是一个非join解决方案。

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

将它们转换成字符串,然后连接它们。尝试使用:

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