2010-07-22 17 views
1

我從this網站獲得了一個bot,我一直對它有很多樂趣。不過,我想添加一個離開命令。 的方式是要去工作,當有人寫在一個字符串中設置一行

away [reason] 

然後將其保存的原因,而當別人把其名字,機器人賽斯「他沒有,他留了一張紙條‘[理由]’ 「 或類似的東西。 我得到當有人寫殭屍程序的輸入是

:[email protected] 
PRIVMSG #mychat :away Im going 
fishing. 

使用這種

line[0][line[0].index(":")+1:line[0].index("!")] 

我的人的用戶名(在這種情況下,它的暱稱),我需要提取所有線後,用線[4:](我去釣魚),這就像一個魅力。 但我需要把它變成一個字符串,因爲它不能返回一個字符串和一個列表。

tl; dr我得到一個列表作爲一個值,我希望它返回一個字符串,我該怎麼辦?

+2

而不是小鹿你自己,只是告訴我們你有什麼,以及你想要它。 – 2010-07-22 17:19:57

+0

是你輸入的一個字符串嗎?一串字符串? – SilentGhost 2010-07-22 17:22:08

+0

從他使用它的方式來說,我會說'line'是一個字符串列表。 – 2010-07-22 17:30:54

回答

0

如果要將列表轉換爲字符串,只需使用'x'.join(mylist),其中x是每個元素(如空格,逗號等)之間所需的字符,則可以將其與其他字符串。

我,雖然我想有兩種不同的方式,但我不知道這是更快(或者,如果你會做它足以讓一個差)

... 
mylist.append(mystr) 
return ' '.join(mylist) 

... 
return ' '.join(mylist) + ' ' + mystr 

雖然我認爲前一種方式看起來更好。

編輯:
如果列表中包含非字符串就可以養活一臺發電機表達.join()

return ' '.join(str(_) for _ in mylist) 
0

如果它是一個字符串列表,你可以這樣做:

''.join(stringlist) 

它連接所有的字符串,使其成爲一個字符串。

str.join()

+0

非常感謝,完美無缺;) – Pappegye 2010-07-22 21:43:39

1

你可以做你想做的是這樣的:

line = [ 
    ':[email protected]', 
    'PRIVMSG #mychat :away Im going', 
    'fishing.' 
] 

away = '\n'.join(line[1:]) 
needle = ':away ' 
away = away[away.index(needle) + len(needle):] 
print away 

結果:

 
Im going 
fishing. 

如果你想在一行輸出使用' '.join(line[1:])代替'\n'.join(line[1:])

相關問題