2014-01-28 52 views
0

我試圖做一些需要作爲輸入的字符串列表,並返回一個串聯所有這些字符串的字符串。不過,我試圖學習如何在沒有連接方法的情況下做到這一點。沒有使用連接的Python串聯

這裏是我的代碼的主要大宗:

def concat_list(p): 

def main(): 
    list = [] 
    i = 1 
    print('Entering the empty string stops the input process.') 
    while True: 
     str_input = str(input('Enter string #' + str(i) + ': ')) 
     if str_input == '': # empty string -> stop input process 
      if i > 1: 
       list.pop()  # remove the last element ' ' from list 
      break 
     i = i + 1 
     list.append(str_input) 
     list.append(' ')  # we want the user's input strings to be interspersed with ' ' 
           # for instance: ['Python', ' ', 'is', 'so', ' ', 'cool'] 
    print(list) 

main() 

的高清concat_list使用是爲了存儲/調用新的級聯文本什麼有人推薦。有沒有人有什麼建議?我打了一個街區。使用連接方法可以簡化我所知道的事情,但我想盡量不做。

+0

在最後,如果你想該列表轉換成你必須使用加入一個字符串,或者使用低效率和昂貴的字符串連接,比如'string + = substring' – bgusach

回答

0

join()方法通常是更好/更地道的做法,但你也可以用++=連接字符串:

>>> l = ['this', ' ', 'is', ' ', 'a', ' ', 'test'] 
>>> l 
['this', ' ', 'is', ' ', 'a', ' ', 'test'] 

>>> def concat_list(l): 
... s = '' 
... for word in l: 
...  s += word 
... return s 
... 
>>> concat_list(l) 
'this is a test' 
+0

沒問題,所以這就是concat_list的用途,基本上它是存儲要連接的字符串的地方。這使得多一點意義謝謝你! – user3230393

+0

更好地想一想'concat_list'是一個接受單個參數(包含字符串的列表)的函數,並將它們組合成單個字符串's',並返回調用該函數的代碼。 – bgporter

+0

這段代碼是什麼?或者它與我的p有什麼關係? – user3230393