Python中如何提取嵌套列表首尾元素生成一维新列表?
嵌套列表首尾元素提取代码修正
你的代码当前输出二维列表的原因是:每次循环都把子列表的首尾元素打包成一个新列表,再用append()添加到结果中,导致结果里嵌套了子列表。要得到一维列表,需要将首尾元素分别添加到结果列表,而不是添加一个包含两个元素的列表。
方法一:修改循环内的添加逻辑
直接对首尾元素分别调用append():
def first_and_last(l): result = [] for x in l: result.append(x[0]) result.append(x[-1]) return result fl = first_and_last([[True, True, False], ['a', 'b', 'z']]) print(fl) # 输出: [True, False, 'a', 'z']
方法二:使用列表推导式简化代码
用双层列表推导式直接生成一维结果,写法更简洁:
def first_and_last(l): return [elem for sublist in l for elem in [sublist[0], sublist[-1]]] fl = first_and_last([[True, True, False], ['a', 'b', 'z']]) print(fl) # 输出: [True, False, 'a', 'z']
内容的提问来源于stack exchange,提问作者Begginer
相关产品推荐
相关产品推荐

