是否可以从索引中引用当前列表的长度?

时间:2011-04-19 20:39:30

标签: python

我想说的是: [1,2,3,4] [len / 2]其中len指的是这个未命名列表的长度。

有没有办法在python中执行此操作?

3 个答案:

答案 0 :(得分:7)

要回答您的问题,如果事先没有列表,则无法执行此操作。但是你可以这样做:

>>> l = [1,2,3,4]
>>> l[len(l)/2]
3

答案 1 :(得分:1)

我认为这样的东西不可能开箱即用。但是更多的pythonic方式无论如何都会让你的想法更加精确。为什么不这样写:

def middle(*items):
    return items[len(items)/2]

print middle(1,2,3,4)

答案 2 :(得分:0)

只是为了好玩

def half(a):
    return len(a) / 2 

class _(object):
    def __init__(self, *args):
        self.l = list(args)
    def __getitem__(self, idx):
        if type(idx) == int:
            return self.l[idx]
        else:
            return self.l[idx(self.l)]

print _(1, 2, 3, 4)[half]

虽然@Mike Lewis的回答赢了。