python列表交换位置_python – 在列表中交换两个子列表

给出以下列表:

my_list=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

我希望能够尽快和尽可能高效地将子列表my_list [2:4]与子列表my_list [7:10]进行交换,以获得新列表:

new_list=[0, 1, 7, 8, 9, 4, 5, 6, 2, 3, 10, 11, 12]

这是我的尝试:

def swap(s1, s2, l):

seg1=l[:s1.start]+l[s2]

seg2=l[s1.stop : s2.start]

seg3=l[s1]+l[s2.stop:]

return seg1+seg2+seg3

print swap(slice(2,4), slice(7,10), [0,1,2,3,4,5,6,7,8,9,10,11,12])

这确实打印了所需的输出,尽管这样做对我看起来很糟糕。

有没有更简单和优雅的方式来做,不会为每个函数调用创建四个新的列表? (我打算这个函数很多)

我不介意(实际上我更喜欢)更改原始列表,而不是每个函数调用创建新的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值