如何用列表推导式实现嵌套列表的数值提取(类FizzBuzz写法)?
嵌套列表的数值提取解决方案
给定列表:
l = ["Sai", "prasad", 1234, 12.34, [1, 2, 3, 4]]
需要提取其中所有整数、浮点数(包括嵌套列表内的对应元素),预期输出:[1234, 12.34, 1, 2, 3, 4]。
以下是符合要求的列表推导式实现:
result = [num for item in l for num in (item if isinstance(item, list) else [item]) if isinstance(num, (int, float))]
逻辑说明
- 第一层遍历
for item in l:逐个处理原列表中的每个元素 - 第二层遍历
for num in (item if isinstance(item, list) else [item]):- 若当前元素是列表,则直接遍历其内部元素
- 若不是列表,将单个元素包装为列表,统一遍历逻辑
- 条件筛选
if isinstance(num, (int, float)):仅保留整数和浮点数类型的元素
执行后即可得到预期的提取结果。
内容的提问来源于stack exchange,提问作者SAIPARSAD BHANDARWAD
相关产品推荐
相关产品推荐

