You need to enable JavaScript to run this app. Python嵌套列表反转代码修正:修改现有代码实现子列表元素反转
优惠活动
大模型
产品
解决方案
定价
更多

Python嵌套列表反转代码修正:修改现有代码实现子列表元素反转

问题根源

你当前代码的核心错误是括号作用域匹配错误:

  • 原写法list(reversed(i) for i in zip(...))是把整个生成器表达式强制转成列表,但每个生成元素reversed(i)本身返回的是惰性反向迭代器对象,不是已经完成元素反转的实际列表。最终存入z的全是打印出来类似<list_reverseiterator object at 0x...>的迭代器引用,完全达不到你要的子列表元素反转效果。

最小改动实现(完全保留原有代码逻辑,不重写)

仅需要调整作用域,把每个反向迭代器转成实际列表即可,改动幅度极小:

z = [list(reversed(i)) for i in zip(['FRED', 'CORWILL'], ['WILFRED', 'CORWILL'], ['RAPHAEL', 'CORWILL'], ['ALFRED', 'CORWILL'], ['BARNEY', 'TORNBULL'], ['BETTY', 'TORNBULL'], ['BJON', 'TORNBULL'])]

print(z)

改动说明

  • 全程保留你原本的核心逻辑:用zip打包成对的姓名、遍历每个打包单元、用reversed()执行元素反转,没有替换成其他实现思路
  • 仅对单个reversed(i)的返回值调用list(),把惰性迭代器转换成你需要的列表格式
  • 代码运行后的输出完全匹配你的需求:
[['CORWILL', 'FRED'], ['CORWILL', 'WILFRED'], ['CORWILL', 'RAPHAEL'], ['CORWILL', 'ALFRED'], ['TORNBULL', 'BARNEY'], ['TORNBULL', 'BETTY'], ['TORNBULL', 'BJON']]

如果你想完全沿用原本的生成器表达式写法,不想换成列表推导式,只需要给每个reversed的结果多套一层list()即可,效果完全一致:

z = list(list(reversed(i)) for i in zip(['FRED', 'CORWILL'], ['WILFRED', 'CORWILL'], ['RAPHAEL', 'CORWILL'], ['ALFRED', 'CORWILL'], ['BARNEY', 'TORNBULL'], ['BETTY', 'TORNBULL'], ['BJON', 'TORNBULL']))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 05:36:02