2016-05-22 42 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