首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分字符串->待检查列表

拆分字符串->待检查列表
EN

Stack Overflow用户
提问于 2010-12-07 11:00:10
回答 2查看 201关注 0票数 1

我已经潜伏了几个星期,并决定加入,以便更多地动手学习Python。

我想要做的是提取一个包含多个网址的字符串,然后列出一个包含域名为2-4个字符的所有地址的列表。假设地址并非都是simple.com类型,它们可能包含多个句点。下面是我想要转换的示例字符串:

代码语言:javascript
复制
urlstring = 'albatross.org,boogaloo.boolean.net,zenoparadox.hercules.gr,takeawalkon.the.wildside,fuzzy.logic.it,bronzeandiron.age,areyou.serious'

要获取列表中的地址,请执行以下操作:list(urlstring.split(','))。但我无法确定如何辨别域名的长度,并根据该长度删除它或不删除它。是否需要通过split('.')将每个地址字符串拆分成子字符串?=/

我很确定这个问题在其他地方也有答案,但我真的找不到完全相似的东西。我为这个超级低级的问题道歉,并保证我的问题会随着我的学习而提高质量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-07 11:07:46

假设您只关心TLD的长度:

代码语言:javascript
复制
[url for url in urlstring.split(',') if 2 <= len(url.split('.')[-2]) <= 4]
票数 1
EN

Stack Overflow用户

发布于 2010-12-07 11:23:05

或者,如果您想要获取至少有一个所需的或长度正确的域名的所有urls,您可以尝试以下代码:

代码语言:javascript
复制
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']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4373002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档