如何在Python 3中将列表[1,2,1,3,2]拆分为指定格式的嵌套列表?
当然可以实现!
你的需求本质是将原列表中每一对相邻元素依次组成嵌套子列表,这在Python里有好几种简洁的实现方式,下面给你两种常用方法:
方法一:列表推导式(最直观)
利用列表切片的特性,遍历到原列表的倒数第二个元素,每次取当前索引和下一个索引的元素组成子列表:
original_list = [1, 2, 1, 3, 2] nested_list = [original_list[i:i+2] for i in range(len(original_list) - 1)] print(nested_list) # 输出: [[1,2],[2,1],[1,3],[3,2]]
这里range(len(original_list)-1)确保我们不会越界,因为当i是原列表倒数第二个元素的索引时,i+2刚好取到最后一个元素。
方法二:使用zip()函数(更Pythonic)
通过将原列表和它的“切片副本”(去掉第一个元素)配对,zip()会自动把对应位置的元素组合成元组,最后再转成列表即可:
original_list = [1, 2, 1, 3, 2] # 先得到相邻元素的元组对,再转成列表 nested_list = [list(pair) for pair in zip(original_list, original_list[1:])] print(nested_list) # 输出: [[1,2],[2,1],[1,3],[3,2]]
如果不介意子元素是元组的话,直接list(zip(original_list, original_list[1:]))就能得到[(1,2),(2,1),(1,3),(3,2)],转成列表只是多一步操作。
两种方法都能完美实现你的需求,选哪种看个人习惯就好~
内容的提问来源于stack exchange,提问作者user9342203
相关产品推荐
相关产品推荐

