首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python提选数组中任意位置的相邻元素

2012-07-26 
python选取数组中任意位置的相邻元素比方说有一个排行榜(假设小于1000),需要选取出某个用户的相邻排名前两

python选取数组中任意位置的相邻元素

比方说有一个排行榜(假设小于1000),需要选取出某个用户的相邻排名前两名和后两名;如果该用户本身没有前两名则在后两名中补齐(比如用户如果是第一名那么去2,3,4,5名),反之同理,用python实现。

?

代码如下,感觉挺笨,不过达到了效果:

假设一共0~14 15个数,输入任意0~14的数以及scope(如果显示前后两名则写4,奇数情况暂没考虑)

?

Pasting code; enter '--' alone on the line to stop.:    def t(selfid, scope)::        arr = range(15):        l = len(arr):        ind = arr.index(selfid):        :        start = ind - scope/2:        end = ind + scope/2:        if start <= 0::            end = end - start:            start = 0:        elif end >= l::            start = start - (end - l) - 1:            end = l:        :        res = arr[start:end + 1]:        res.remove(selfid):        return res:--

?测试代码如下:

for i in range(15):    print i, t(i, 4), i in t(i,4)    print '--------------------------'   ....:        ....:     0 [1, 2, 3, 4] False--------------------------1 [0, 2, 3, 4] False--------------------------2 [0, 1, 3, 4] False--------------------------3 [1, 2, 4, 5] False--------------------------4 [2, 3, 5, 6] False--------------------------5 [3, 4, 6, 7] False--------------------------6 [4, 5, 7, 8] False--------------------------7 [5, 6, 8, 9] False--------------------------8 [6, 7, 9, 10] False--------------------------9 [7, 8, 10, 11] False--------------------------10 [8, 9, 11, 12] False--------------------------11 [9, 10, 12, 13] False--------------------------12 [10, 11, 13, 14] False--------------------------13 [10, 11, 12, 14] False--------------------------14 [10, 11, 12, 13] False--------------------------

?

欢迎拍砖,chop地址:http://chopapp.com/#s5jknzbm

热点排行