我需要在python字符串的每個3個字符上添加一個空格,但沒有關於如何執行該操作的許多線索。Python - 如何在每個3個字符上添加空格?
字符串:
345 674 655
就如何實現這一目標任何線索:
345674655
,我需要的輸出?
最好的問候,
我需要在python字符串的每個3個字符上添加一個空格,但沒有關於如何執行該操作的許多線索。Python - 如何在每個3個字符上添加空格?
字符串:
345 674 655
就如何實現這一目標任何線索:
345674655
,我需要的輸出?
最好的問候,
你只需要一種方法來遍歷你的字符串中塊3
>>> a = '345674655'
>>> [a[i:i+3] for i in range(0, len(a), 3)]
['345', '674', '655']
然後' '.join
結果。
>>> ' '.join([a[i:i+3] for i in range(0, len(a), 3)])
'345 674 655'
需要注意的是:
>>> [''.join(x) for x in zip(*[iter(a)]*3)]
['345', '674', '655']
也適用於分區的字符串。這將任意iterables(不只是字符串)工作,但截斷,其長度不被3整除要恢復原始行爲的字符串,可以使用itertools.izip_longest
(在py3k itertools.zip_longest
):
>>> import itertools
>>> [''.join(x) for x in itertools.izip_longest(*[iter(a)]*3, fillvalue=' ')]
['345', '674', '655']
當然,你付出一點在方便閱讀,在這些後面的答案改進概括而言...
一個單行的解決方案將是
" ".join(splitAt(x,3))
然而
,Python是缺少splitAt()
˚F油膏,所以自己定義一個
def splitAt(w,n):
for i in range(0,len(w),n):
yield w[i:i+n]
與加入「 - 」經連結的各3個字符的第一,第二和第三個字符:
' '.join(a+b+c for a,b,c in zip(x[::3], x[1::3], x[2::3]))
確保字符串長度可分3
基於@mgilson的回答
def litering_by_three(a):
return ' '.join([a[i:i + 3] for i in range(0, len(a), 3)])
# replace (↑) with you character like ","
什麼的'1234'所需的輸出最佳功能? – NPE 2013-03-06 17:39:31