在Python中,创建一个新列表的最佳方法是什么,该列表的项目与其他列表的项目相同,但顺序相反? (我不想修改现有列表。)
这是我想到的一种解决方案:
new_list = list(reversed(old_list))
复制也是可以的old_list
然后将重复项反转到位:
new_list = list(old_list) # or `new_list = old_list[:]`
new_list.reverse()
有没有更好的选择被我忽略了?如果不是,是否有令人信服的理由(例如效率)来使用上述方法之一而不是另一种?
newlist = oldlist[::-1]
The [::-1]
切片(我的妻子安娜喜欢称之为“火星笑脸”;-)意味着:对整个序列进行切片,步长为 -1,即相反。它适用于所有序列。
请注意,这个(and您提到的替代方案)相当于“浅复制”,即:如果项目是可变的并且您对它们调用变异器,则原始列表中保存的项目中的突变也在反转列表中的项目中,反之亦然反之亦然。如果您需要避免这种情况,copy.deepcopy
(虽然总是一个潜在成本高昂的操作),在这种情况下紧接着是.reverse
,是唯一好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)