意外返回列表而不是列表

时间:2012-11-12 03:41:04

标签: python

这个应用程序将下载一个网页,并在页面文本中找到所有电子邮件地址,并返回它们的列表。

这是我目前的代码:

def emails(content):
'return list of email addresses contained in string content'
    email = []
    content = urlopen(url).read().decode()
    pattern='[A-Za-z0-9_.]+\@[A-Za-z0-9_.]+\....'
    email.append(re.findall(pattern,content))
    print(email)

但出于某种原因,我得到了:

[['somePERSON@university.ca"']]

而不是:

['somePERSON@university.ca']

1 个答案:

答案 0 :(得分:5)

re.findall实际上会返回一个列表,因此您要将列表附加到列表中。如果您不想要这种行为,您可以执行类似email.extend(re.findall(pattern,content))的操作(尽管我通常会在自己的行上检查匹配项以确保找到匹配项并且正确处理不匹配项。)