切记else语句的后面直接加冒号: 字符和数字绝对不能直接相加 对于字符与整数之间的转化 ord('E')可以将其转化为45,chr(65)可以将其转化为A 编写程序的时候尽量要考虑时间复杂度 append()的用法竟然搞错了 python中//的作用 标准库中的bisect可以进行二分法查找 .....
分类:
编程语言 时间:
2015-04-12 19:14:31
阅读次数:
147
1.bisect:使用二分法,在一个已排序的序列查找合适的插入位置。>>>import bisect>>>l = [10,19,88,90]>>>bisect.bisect(l, 22)>>>2 #适合插入的位置为2bisect.bisect_left(l, 22) #如果已经在列表中存在,返...
分类:
编程语言 时间:
2015-02-12 15:30:51
阅读次数:
153
python语言中的dict(字典)类型是无序的。但是,实际中,我们有时会用到有序字典这种结构,也就是在一个有序的结构中存储一系列键值对。这里介绍的是,如何用两个list来实现这个结构。
1、bisect模块
1.1 介绍
python中的bisect模块可以实现向有序列表中插入元素,同时维护列表的顺序。bisect的实现也比较简单,大致的原理是首先使用二分查找,查找应该插入的位置,然后用l...
分类:
编程语言 时间:
2015-01-27 16:22:04
阅读次数:
651
转发:http://www.cnblogs.com/skydesign/archive/2011/09/02/2163592.html先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这里就不介绍了。 先说明的是,使用这个模块的函数前先确保操作的列表是已排序的。先看看 insort 函数...
分类:
编程语言 时间:
2015-01-10 12:26:09
阅读次数:
211
带权随机在游戏开发中重度使用,各种抽奖和爆装备等.
运营根据需要来配置各个物品出现的概率.
今天要说的这个带权随机算法思想很简单,就是"把所有物品根据其权重构成一个个区间,权重大的区间大.可以想象成一个饼图. 然后,扔骰子,看落在哪个区间,"
举个栗子,有个年终抽奖,物品是iphone/ipad/itouch.
主办方配置的权重是[('iphone', 10), ('ipad', 40)...
分类:
编程语言 时间:
2014-10-28 20:09:30
阅读次数:
258
作用:维护有序列表,而不必在每次想列表增加一个元素时调用sort排序bisect 模块实现了一个算法用于向列表中插入元素,同时仍保持列表有序。有些情况下,这比反复对一个了表序列更高效,另外也比构建一个大列表之后再显式对齐排序更为高效1、有序插入使用insort()按有序顺序像一个列表中插入元素 1 ...
分类:
其他好文 时间:
2014-10-13 01:51:21
阅读次数:
276
用了redis也有2年多了,常常感叹于redis的优美和精悍,麻雀虽小五脏俱全。
最近手痒冒出用python在内存中实现一个zset数据结构的想法。
思路是这样的:
hash + sortedlist
其中hash用于使获取键值的复杂度变成O(1)
而用bisect模块二分法作用于sortedlist实现其它操作O(logN)
下面上代码。
#coding=utf-8
fro...
分类:
编程语言 时间:
2014-09-15 22:54:26
阅读次数:
339