我从this网站获得了一个机器人,我一直很开心。但是我想添加一个离开命令。 它的工作方式是当有人写
时 away [reason]
然后它保存了原因,当别人输入他的名字时,机器人sais“他不可用,他留下了一个注意'[原因]'”或类似的东西。 当有人写入机器人时我得到的输入是
:NickName!email@gtanet-GTMJLJRI83.nextgentel.com
PRIVMSG #mychat :away Im going
fishing.
使用此
line[0][line[0].index(":")+1:line[0].index("!")]
我得到了这个人的用户名(在这种情况下,它是NickName),我需要使用line [4:](我正在钓鱼)之后提取所有行,这就像一个魅力。 但是我需要把它变成一个字符串,因为它不能返回一个字符串和一个列表。
tl; dr 我得到一个列表作为值,我希望它用字符串返回它,我该怎么办?
答案 0 :(得分:1)
你可以这样做你想做的事:
line = [
':NickName!email@gtanet-GTMJLJRI83.nextgentel.com',
'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:])
。
答案 1 :(得分:0)
如果要将列表转换为字符串,只需使用'x'.join(mylist)
,其中x是每个元素之间所需的字符(例如空格,逗号等),那么您可以将其连接到你的另一个字符串。
虽然我猜我有两种不同的方式,但我不确定哪种方式更快(或者你是否会做得足够有效)
...
mylist.append(mystr)
return ' '.join(mylist)
和
...
return ' '.join(mylist) + ' ' + mystr
虽然我认为前一种方式看起来更好。
修改强>
如果您的列表包含非字符串,则可以将生成器表达式提供给.join()
:
return ' '.join(str(_) for _ in mylist)
答案 2 :(得分:0)