如何在Python中实现Ruby式的列表中间插入元素操作?
在Python中实现Ruby式的列表中间元素插入
嘿,这个问题问得好!其实在Python 3.5及以上版本里,你完全可以用和Ruby几乎一模一样的写法来实现需求——你之前运行报错,大概率是因为使用的Python版本太老了。
直接看代码示例:
>>> l = [1, 2, 3, *[4, 5], 6, 7] >>> l [1, 2, 3, 4, 5, 6, 7]
这个语法叫做列表字面量解包,和Ruby里的*作用完全等价:它会把可迭代对象(这里是子列表[4,5])的所有元素直接展开,插入到父列表的对应位置,完美实现你想要的简洁写法。
如果你的项目必须兼容Python 3.4及更早的版本,那你提到的两种方案都是靠谱的替代选择:
- 方案1:分步追加
l = [1, 2, 3] l += [4, 5] l += [6, 7]
- 方案2:切片拼接
l = [1, 2, 3, 6, 7] l = l[:3] + [4, 5] + l[3:]
总的来说,只要环境允许(Python 3.5+),直接用*解包的写法就是Ruby语法的完美等价实现,既简洁又直观。
内容的提问来源于stack exchange,提问作者pgpb.padilla
相关产品推荐
相关产品推荐

