You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何高效将普通列表转换为带计数的嵌套列表?

Python优雅转换列表为带序号的嵌套列表

当然有!你的for循环写法逻辑清晰、完全可行,但Python确实提供了更简洁、符合Pythonic风格的方案——用enumerate()函数搭配列表推导式就能轻松搞定。

enumerate()是Python内置的实用函数,它可以遍历可迭代对象(比如你的列表l1),同时返回元素的索引和元素本身。默认索引从0开始,不过我们可以通过start参数指定从1开始计数,刚好符合你需要的序号要求。

直接上最优实现代码:

l1 = ['a', 'b', 'c', 'd', 'e']
l2 = [[item, idx] for idx, item in enumerate(l1, start=1)]

运行这段代码后,l2就会得到你想要的[['a',1], ['b',2], ['c', 3], ['d',4], ['e',5]]。

这种写法的优势在于:

  • 无需手动维护计数器变量c,减少出错概率
  • 代码更紧凑,可读性强,一眼就能明白是给每个元素添加从1开始的序号
  • 列表推导式在Python中的执行效率比手动循环append更高

如果想尝试另一种写法(虽然可读性稍弱),也可以用map()函数配合匿名lambda:

l2 = list(map(lambda pair: [pair[1], pair[0]+1], enumerate(l1)))

不过还是更推荐第一种列表推导式+enumerate的组合,既简洁又直观。

内容的提问来源于stack exchange,提问作者taga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:59:05