2016-02-22 115 views
0
a=['hi','helllo'] 
for i in a: 
    for j in i: 
     print j 

我收到輸出: ^ h 我 ^ h Ë 升 升 Ø如何用這個循環來獲得期望的結果在Python

什麼,我希望是 嗨 你好

有沒有辦法做到這一點?提前致謝!

+0

對不起,沒有明確的說法。我想通過對2所提到的循環相同的輸出..這就是問題..反正我們能做的它? – Shiv18

回答

2

更新

當你堅持使用嵌套的for循環,這裏的方式,使這項工作:

import sys 

a = ['hi','helllo'] 
first = True 
for i in a: 
    if not first: 
     sys.stdout.write(' ') 
    first = False 
    for j in i: 
     sys.stdout.write(j) 
print() 

這直接寫入每個字符sys.stdout。它確保空格字符分隔每個單詞,並跳過一些箍環以確保沒有尾隨空格字符。這太可怕了,我想不出有這樣做的理由。

這是一個更好的實現方法;使用str.join()

>>> a = ['hi','helllo'] 
>>> print(' '.join(a)) 
hi helllo 

的問題,你正在做的方式是內超過在a包含在字符串的每個字符循環迭代,每個印刷在其自己的行。你可以在溝內部循環,並打印每個字符串沒有新線:

a = ['hi','helllo'] 
for i in a: 
    print i, 

print聲明後面的逗號防止正在打印新的生產線。注:這是一個僅限Python 2的解決方案。該str.join()方法將同時在Python的工作,2和3

在Python 3,你可以簡單地這樣做:

print(*a) 

...,並且可以由相同的代碼在Python 2工作,如果您啓用該print()功能通過添加到您的Python文件的頂部:

from __future__ import print_function 
+0

在上面提到的例子中,我得到的是h在第二個for循環中處理,然後'i'被處理..我希望第一個'hi'在第二個for循環處理...任何線索? @mhawke – Shiv18

+0

@ Shiv18:更新爲2個循環。 – mhawke

相關問題