【发布时间】:2018-02-06 11:19:38
【问题描述】:
我有一个看起来像这样的列表:
[u'https://www.microsoft.com']
[u'https://www.microsoft.com']
[u'https://products.office.com/en-us/home']
[u'https://www.microsoft.com/en-us/windows/']
[u'https://www.microsoft.com/surface/en-us']
[u'https://www.xbox.com/en-us']
我想稍微清理一下输出,对值进行排序,删除重复的条目,等等。但在它的当前格式中,它不是将每个值作为一个完整的单个元素进行操作,而是对单个字符(即,只是一串单个字母)进行操作。我得到的只是无意义的文本字符串。
所以基本上,我想将所有子列表合并到一个列表中,在一行上,采用以下(常规)格式:
['https://www.microsoft.com', 'https://www.microsoft.com', 'https://products.office.com/en-us/home', 'https://www.microsoft.com/en-us/windows/', 'https://www.microsoft.com/surface/en-us', 'https://www.xbox.com/en-us']
我是 Python 新手,所以我可能遗漏了一些东西(或在某些时候使用了不正确的术语),但这(以及方括号的位置)是我认为这被视为列表的原因(和/或多个子列表);如果我用print(type(links)) 替换print(links),我会得到以下输出:
<type 'list'>
<type 'list'>
<type 'list'>
<type 'list'>
<type 'list'>
<type 'list'>
定义links 的原始代码如下所示:
class LinkParser(HTMLParser):
def handle_starttag(self, tag, attrs):
links = []
if tag == 'a':
for attr in attrs:
if attr[0] == 'href':
links.append(attr[1])
print(links)
【问题讨论】:
-
print(my_list)的输出看起来不像列表... -
你能给出
type(my_list)的输出吗? -
你可能想要 list(set([el[0] for el in my_list]))。
-
@hiroprotagonist 因为换行符?
-
换行符,没有逗号,外部列表周围缺少括号。
标签: python python-3.x list nested-lists sublist