2013-04-29 28 views
0

我有一個這樣的輸入時,做切片:如何使用sys.stdout.write函數()

country = 'CANADA' 

,我想輸出是這樣的:

C*A*N*A*D*A 

我試着做到這一點:

for letter in country: 
    tag = letter+'*' 
    sys.stdout.write(tag) 

但我會得到C*A*N*A*D*A*,而不是C*A*N*A*D*A。那麼我該如何分割sys.stdout.write或者我必須做其他格式?

+1

參見:http://stackoverflow.com/questions/4265945/what-are-clever-ways-to-output-a-list-of -n-items-with-n-1-separators -in – 2013-04-29 07:51:02

回答

9
>>> country = 'CANADA' 
>>> '*'.join(country) 
'C*A*N*A*D*A' 

你的版本切片:

>>> country = 'CANADA' 
>>> tag = '' 
>>> for letter in country: 
     tag += letter+'*' 


>>> sys.stdout.write(tag[:-1]) # everything up until the last character 
C*A*N*A*D*A 
+0

沒有什麼比發佈解決方案看到字面上幾秒前發佈的完全相同的解決方案:p – 2013-04-29 07:47:16

+0

@jamylak如何使用print來代替sys.stdout.write? – 2013-04-29 07:59:10

+0

@FynnMahoney'print'是相同的,只是它也添加了一個新行,所以'print tag [: - 1]'會在後面用一個換行符打印它(這可能是需要的)。如果您不希望換行符使用尾隨逗號'print tag [: - 1],' – jamylak 2013-04-29 08:00:31