元组解包成多个列表

时间:2018-10-04 10:02:42

标签: python-3.x list tuples

我有以下长串:

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

0 个答案:

没有答案