You need to enable JavaScript to run this app. 如何在Python中从嵌套列表过滤字符串并追加至新列表
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中从嵌套列表过滤字符串并追加至新列表

嵌套列表域名筛选问题修正

错误原因

原代码的循环只走到了最外层的大列表层级,每次循环拿到的lnk是一个完整的子列表(比如第一趟循环拿到的就是['adsd%linkedin.comhasdhu', 'sahasbfacebook.comdcs', 'dfsdftwitter.comdsddf'])。此时执行if "linkedin" in lnk,是在检查这个子列表里有没有值为"linkedin"的元素,根本不会去检查子列表每个字符串内部的内容,所以所有判断都不会触发,自然得不到想要的结果。代码里嵌套的try-except块在这里完全没有作用,因为整个判断过程根本不会抛出异常。

修正方案

增加一层循环,先遍历外层列表拿到所有子列表,再遍历每个子列表取出单个字符串,再判断字符串内包含的域名标识,追加到对应的目标列表中即可。

可直接运行的修正代码

lnks = [
    ['adsd%linkedin.comhasdhu', 'sahasbfacebook.comdcs', 'dfsdftwitter.comdsddf'],
    ['vsdd%linkedin.comfsadfs', 'sdfsdfsfacebook.comsfsdf', '345r3ftwitter.comwer'],
    ['fvsdlinkedin.comsdfsf', 'sdfefacebook.comswwert', 'wtwtwitter.comy4w4y']
]

linkedin = []
twitter = []
facebook = []

# 两层遍历,深入到子列表内部的字符串做判断
for sub_arr in lnks:
    for raw_str in sub_arr:
        if "linkedin" in raw_str:
            linkedin.append(raw_str)
        elif "twitter" in raw_str:
            twitter.append(raw_str)
        elif "facebook" in raw_str:
            facebook.append(raw_str)

运行后输出结果

代码运行后得到的三个列表完全符合预期:

  • linkedin:['adsd%linkedin.comhasdhu', 'vsdd%linkedin.comfsadfs', 'fvsdlinkedin.comsdfsf']
  • twitter:['dfsdftwitter.comdsddf', '345r3ftwitter.comwer', 'wtwtwitter.comy4w4y']
  • facebook:['sahasbfacebook.comdcs', 'sdfsdfsfacebook.comsfsdf', 'sdfefacebook.comswwert']

内容的提问来源于stack exchange,提问作者Goutam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 03:54:05