如何从电子邮件地址列表中删除多余的逗号

Amm*_*mad 0 python string

我正在使用 python,并且有一串电子邮件地址,如下所示。

email_addr = 'test@domain.com, test1@domain.com, test2@domain.com'
Run Code Online (Sandbox Code Playgroud)

上面的字符串看起来不错,但是有时我收到的数据中包含空白电子邮件地址。

例如

email_addr = ' , , test@domain.com, test1@domain.com, , , ,test2@domain.com
Run Code Online (Sandbox Code Playgroud)

我正在使用str.split(',')并检查很多错误。想知道是否有更好的方法来做到这一点?

我期望的最终值:

email_addr = ' , , test@domain.com, test1@domain.com, , , ,test2@domain.com
Run Code Online (Sandbox Code Playgroud)

到:

email_addr = 'test@domain.com,test1@domain.com,test2@domain.com'
Run Code Online (Sandbox Code Playgroud)

Pra*_*adi 5

不需要正则表达式。用于.split(',')拆分为字符串列表。

email_lst = email_addr.split(',')
Run Code Online (Sandbox Code Playgroud)

然后用逗号连接,但过滤掉空白值

email_addr2 = ",".join(e.strip() for e in email_lst if e.strip())
# 'test@domain.com,test1@domain.com,test2@domain.com'
Run Code Online (Sandbox Code Playgroud)

在 Python 3.8+ 中,您可以使用 walrus 运算符来避免调用.strip()两次:

email_addr2 = ",".join(e for ee in email_lst if (e := ee.strip()))
Run Code Online (Sandbox Code Playgroud)