如何从Python列表中提取包含'Sky'子串的元素?
Python筛选含特定子串的列表元素
原列表:
original_list = ['CALSIM', '1693', '1938', '1429', '1646', '1199', '1204', '1477', '1268', '1158', '1051', '998', '1135', '2381', '2513', 'Sky19', '1627', '2124', '1859', '2504', '1690', '1784', 'Sky21', 'Sky38', '2833', 'Sky20']
最便捷的实现方式:列表推导式
这是Python处理此类筛选场景最简洁高效的写法:
sky_elements = [item for item in original_list if 'Sky' in item] print(sky_elements) # 输出: ['Sky19', 'Sky21', 'Sky38', 'Sky20']
遍历原列表时,通过'Sky' in item判断元素是否包含目标子串,满足条件的元素直接加入新列表,逻辑清晰且代码量少。
备选方案:filter()函数
如果偏好函数式编程风格,可用filter()配合lambda表达式实现:
sky_elements = list(filter(lambda x: 'Sky' in x, original_list)) print(sky_elements) # 输出同上
filter()会依据lambda表达式的判断结果筛选符合条件的元素,最后将filter对象转为列表即可。
内容的提问来源于stack exchange,提问作者Dila
相关产品推荐
相关产品推荐

