我已经潜伏了几个星期,并决定加入,以便更多地动手学习Python。
我想要做的是提取一个包含多个网址的字符串,然后列出一个包含域名为2-4个字符的所有地址的列表。假设地址并非都是simple.com类型,它们可能包含多个句点。下面是我想要转换的示例字符串:
urlstring = 'albatross.org,boogaloo.boolean.net,zenoparadox.hercules.gr,takeawalkon.the.wildside,fuzzy.logic.it,bronzeandiron.age,areyou.serious'要获取列表中的地址,请执行以下操作:list(urlstring.split(','))。但我无法确定如何辨别域名的长度,并根据该长度删除它或不删除它。是否需要通过split('.')将每个地址字符串拆分成子字符串?=/
我很确定这个问题在其他地方也有答案,但我真的找不到完全相似的东西。我为这个超级低级的问题道歉,并保证我的问题会随着我的学习而提高质量。
发布于 2010-12-07 11:07:46
假设您只关心TLD的长度:
[url for url in urlstring.split(',') if 2 <= len(url.split('.')[-2]) <= 4]发布于 2010-12-07 11:23:05
或者,如果您想要获取至少有一个所需的或长度正确的域名的所有urls,您可以尝试以下代码:
def len_is_valid(url, min_len, max_len):
return any(map(lambda x: min_len<=len(x)<=max_len,url))
urlstring = 'albatross.org,boogaloo.boolean.net,zenoparadox.hercules.gr,takeawalkon.the.wildside,fuzzy.logic.it,bronzeandiron.age,areyou.serious'
url_list = [url for url in urlstring.split(',')
if len_is_valid(url.split('.'), 2, 4)]
print url_list
# ['albatross.org', 'boogaloo.boolean.net', 'zenoparadox.hercules.gr',
# 'takeawalkon.the.wildside', 'fuzzy.logic.it', 'bronzeandiron.age']https://stackoverflow.com/questions/4373002
复制相似问题