请求帮助:如何将指定Python列表推导式改写为For循环?
将列表推导式改写为For循环实现
原列表推导式的作用是:遍历MyList中的每个子元素,过滤掉子元素里的字符串类型值,将剩余元素转为元组,最终生成一个由这些元组组成的新列表。
下面是两种等价的For循环实现方式:
方式一:保留内部生成器
# 初始化空列表存储处理后的结果 new_my_list = [] # 遍历原MyList的每个子项 for j in MyList: # 用生成器过滤非字符串元素并转为元组 filtered_tuple = tuple(i for i in j if type(i) != str) # 将元组添加到新列表 new_my_list.append(filtered_tuple) # 替换原MyList为处理后的列表 MyList = new_my_list
方式二:完全使用For循环(无生成器)
如果希望彻底用循环实现所有逻辑,也可以把内部的过滤逻辑拆成单独的循环:
new_my_list = [] for j in MyList: filtered_elements = [] # 遍历子项中的每个元素,过滤字符串类型 for i in j: if type(i) != str: filtered_elements.append(i) # 将过滤后的列表转为元组并添加到结果列表 filtered_tuple = tuple(filtered_elements) new_my_list.append(filtered_tuple) MyList = new_my_list
两种写法的执行结果和原列表推导式完全一致,都会生成类似[(X,Y), (X2,Y2)]的结构。
内容的提问来源于stack exchange,提问作者Nicolas Biga
相关产品推荐
相关产品推荐

