为了账号安全,请及时绑定邮箱和手机立即绑定

将元组转换为列表的大多数 Pythonic 方式,在每个现有元素之后添加新元素

将元组转换为列表的大多数 Pythonic 方式,在每个现有元素之后添加新元素

慕虎7371278 2023-03-16 17:47:25
问题可能令人困惑,所以这里有一个例子:我想从一个元组变成(a, b, c)一个列表[a, 1, b, 1, c, 1]。执行此操作的最 Pythonic 方法是什么?[*(x, 1) for x in list]在意识到您无法在列表理解中解包之前,我尝试了类似的方法。最好的方法是什么?我已经搜索了一段时间,找不到任何有用的东西。
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

您可以在列表理解中“解包”,但不完全是那样。使用另一个循环。


xs = (a, b, c)

[e for x in xs for e in (x, 1)]


查看完整回答
反对 回复 2023-03-16
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

你可以使用itertools.chain.from_iterable

>>> from itertools import chain

>>> t = ('a', 'b', 'c')

>>> list(chain.from_iterable((x, 1) for x in t))

['a', 1, 'b', 1, 'c', 1]

但我个人更喜欢故障答案中的链式理解解决方案


查看完整回答
反对 回复 2023-03-16
  • 2 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号