第二章:数据结构-bisect:维护有序列表-处理重复

2.5.2 处理重复
之前显示的结果集包括一个重复的值77bisect模块提供了两种方法来处理重复。新值可以插入到原值的左边或右边。insort()函数实际上是insort_right()的别名,这个函数会在原值之后插入新值。相应的insort_left()函数则在原值之前插入新值。

import bisect

# A series of random numbers
values = [14,85,77,26,50,45,66,79,10,3,84,77,1]

print('New  Pos  Contents')
print('---  ---  --------')

# Use bisect_left and insort_left.
l = []
for i in values:
    position = bisect.bisect_left(l,i)
    bisect.insort_left(l,i)
    print('{:3}  {:3}'.format(i,position),l)

使用bisect_left()和insort_left()处理同样的数据时,结果是相同的有序列表,不过重复值插入的位置有所不同。
运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值