Python:如何从已有列表提取元素创建非嵌套新列表?
一行Python代码生成非嵌套提取列表
要避免生成嵌套列表,核心是让所有提取的内容都以单个元素的形式加入新列表,这里有两种简洁且适配任意索引形式的实现方式:
方式1:列表拼接法
把单个索引获取的元素用[]包裹成单元素列表,再和切片结果直接拼接:
new_list = list1[2:5] + [list2[3]]
方式2:解包操作符*(推荐)
用*直接展开切片返回的列表元素,单个索引的元素直接放入列表,写法更灵活,支持任意切片、单个索引的组合:
new_list = [*list1[2:5], list2[3]]
适配任意索引的示例
- 长步长切片场景:
[*list1[10:1156:3], list2[-2]] - 多来源组合场景:
[*list1[::2], *list2[5:10], list3[0]]
比如给定测试数据:
list1 = ["A", "B", "X", "Y", "Z"] list2 = ["M", "N", "Y"]
执行[*list1[2:5], list2[-1]]会得到非嵌套结果:["X", "Y", "Z", "Y"]
内容的提问来源于stack exchange,提问作者Elia Giaccardi Old
相关产品推荐
相关产品推荐

