Python 合并两个列表项的标准
我正在编程一个支持语音的个人助理。它可以发送电子邮件、查看天气和打开网站 我正在使用谷歌语音API将我的语音转换成语音。当我说“打开有趣的网站reddit.com”时,谷歌认为这是“有趣的”。所以我需要一种方法使“.”之前的任何内容都与字符串with.com组合Python 合并两个列表项的标准,python,Python,我正在编程一个支持语音的个人助理。它可以发送电子邮件、查看天气和打开网站 我正在使用谷歌语音API将我的语音转换成语音。当我说“打开有趣的网站reddit.com”时,谷歌认为这是“有趣的”。所以我需要一种方法使“.”之前的任何内容都与字符串with.com组合 text = ['open', 'funny.', 'Reddit.com'] if 'open' in text: print(text) text = text.split() sub
text = ['open', 'funny.', 'Reddit.com']
if 'open' in text:
print(text)
text = text.split()
sub = 'com'
www = 'www'
wcheck = ("\n".join(s for s in text if www in s))
website = ("\n".join(s for s in text if sub in s))
if 'www' in wcheck:
web.open(website)
if 'www' not in wcheck:
web.open('www.' + website)
仅组合符合特定条件的列表元素的一般方法是首先创建一个较小的列表,其中仅包含符合所述条件的项目。在您的情况下,此列表将是
['funcy.','Reddit.com']
。您可以通过列表理解创建此列表:
[e for e in text if e.endswith((".",".com",".net",".org",".edu",".gov"))]
您的案例的完整答案是:尝试将URL中的每个元素连接起来,形成一个完整的URL
URL = "".join([e for e in text if e.endswith((".",".com",".net",".org",".edu",".gov"))])
我认为这涵盖了大多数网站。例如:
>>> text=["open","funny.","reddit.com"]
>>> print "".join([e for e in text if e.endswith((".",".com",".net",".org",".edu",".gov"))])
funny.reddit.com
请注意,这只适用于简单的情况,而不是像
[“google.com”,“open”,“funcy.”,“reddit.com”]
这样的情况,它将显示“google.com.funcy.reddit.com”
。我假设您的所有输入都相对简单。前缀=“\n”。join(如果在s中为“%s”,则在文本中为s)我不完全确定您实际上想要做什么。prefix=“\n”。join(如果“%s.”中的“%s.”则文本中的s表示s)
将通过换行将单词或字符连接起来。您不打算创建有效的URL吗?我的错,我只是不确定如果我错了,我应该做什么来更正…您有一些固定字符串;例如“reddit.com”“。那么您就有一些从Google返回的动态字符串。然后,您需要将这些URL组合起来以生成有效的URL。如果是这样的话,最好能看到从Google返回的字符串示例。谷歌返回“openfuncy.Reddit.com”,然后我将其拆分。