python-3.x - 元组解包到多个列表中
问题描述
我有以下长字符串:
emails = '''
CoreyMSchafer@gmail.com
corey.schafer@university.edu
corey-321-schafer@my-work.net
'''
从这个字符串中,使用正则表达式,我想将本地部分、域和主域提取到三个列表中
使用以下代码:
pat = re.compile(r'([a-zA-Z0-9.-]*)(@[a-z-]+)(.\w+)')
matches = pat.findall(emails)
我得到了以下列表,其中包含个人元组:
[('CoreyMSchafer', '@gmail', '.com'), ('corey.schafer', '@university', '.edu'), ('corey-321-schafer', '@my-work', '.net')]
如果我然后解包元组:
local_part, domains, main_domains = zip(*matches)
我将得到三个元组,其中各个元素分开,如下所示:
('CoreyMSchafer', 'corey.schafer', 'corey-321-schafer') # local parts
('@gmail', '@university', '@my-work') # domains
('.com', '.edu', '.net') # main domains
尽管如此,我想要三个列表而不是三个元组。
我尝试了以下方法:
a,b,c = map(list,zip(*matches))
但随后我收到以下错误消息:
TypeError Traceback (most recent call last)
<ipython-input-224-73e06f3c6d27> in <module>()
----> 1 a,b,c = map(list,zip(*matches))
TypeError: 'list' object is not callable
解决方案
推荐阅读
- gcc - 不同的函数调用程序集与 -O0 和 -O1 与 ARM 上的 GCC
- prometheus - 如何防止 Prometheus 向指定目标添加端口?
- amazon-cognito - 读/写到 Cognito DeveloperOnlyAttribute
- python - 基于直方图的图像噪声估计
- python - Selenium代理连接,为什么ip不改变?
- android - 为什么 Jenkins 在不同的文件夹中搜索 Android SDK 工具?
- javascript - 使用超链接后如何显示相同 id 的 tabcontent?
- docker - 如何运行/托管:使用 docker-compose 在同一台机器上运行多个环境
- dataframe - 将多个 Dataframe 行转换为一行
- c++ - 当 `std::make_index_sequence` 和 `std::index_sequence` 用于模板参数默认类型时,g++ 和 clang++ 的不同行为