一个可以给出中间字母的函数

时间:2015-04-02 09:37:15

标签: python python-3.x

def f(x):

我试图创建一个函数f(x),它将返回中间字母,例如。

f(["a", "b", "c", "d" "e"])

输出:

["c"]

f(["a", "b", "c", "d" "e", "f"])

因为有一个偶数个字母,输出:

["c", "d"]

4 个答案:

答案 0 :(得分:1)

蛮力方式

def f(x):
    l = len(x)
    if l%2 == 0:
        return x[l//2-1:l//2+1]
    return [x[l//2]]

演示

>>> f(["a", "b", "c", "d", "e"])
['c']
>>> f(["a", "b", "c", "d", "e", "f"])
['d', 'e']
>>> f(["an", "pat", "but", "bet", "ten", "king"])
['but', 'bet']

小注:请参阅to this question以了解python中///运算符之间的区别

答案 1 :(得分:1)

 def f(x):
        l = len(x)
        if l % 2 == 0:
            return [x[l/2 - 1], x[l/2]]
        else:
            return [x[l/2]]





 print f(["a", "b", "c", "d" "e"])
 print f(["a", "b", "c", "d" "e", "f"])

答案 2 :(得分:1)

所以你应该有类似的东西:

def f(x):
  if len(x) % 2 == 0:
    return [x[len(x)/2], x[len(x)/2+1]]
  else:
    return x[ceil(len(x)/2)]

答案 3 :(得分:1)

>>> def f(x):
...     return x[round(len(l)/2-0.5):round(len(l)/2+0.5)]
... 
>>> f(["a", "b", "c", "d", "e", "f"])
['c', 'd']
>>> f(["a", "b", "c", "d", "e"])
['c']