Python3中如何打印嵌套列表里前2个子列表的前2个元素?
Python嵌套列表切片问题解决
你的代码里,x[0:2]能正确获取前2个子列表,但x[0:2][0:2]只是对这个结果再次取前2个元素(而它本身就只有2个子列表),所以输出和第一次重复,没法拿到每个子列表的前2个元素。
要实现预期效果,需要遍历前2个子列表,对每个子列表单独做切片:
x = [[1, 2, 3, 4, 5, 6], ['a', 'b', 'c'], [1.1, 2.2, 3.3]] print(x[0:2]) # 用列表推导式处理每个子列表的前2个元素 print([sublist[:2] for sublist in x[:2]])
运行后输出:
[[1, 2, 3, 4, 5, 6], ['a', 'b', 'c']] [[1, 2], ['a', 'b']]
原理说明
x[:2]:先提取外层列表的前2个子列表,得到[[1,2,3,4,5,6], ['a','b','c']]- 列表推导式
[sublist[:2] for sublist in x[:2]]:遍历每个子列表,对每个子列表取前2个元素,最终组合成新的嵌套列表。
内容的提问来源于stack exchange,提问作者zahed siddiqi
相关产品推荐
相关产品推荐

