def f(x):
我试图创建一个函数f(x),它将返回中间字母,例如。
f(["a", "b", "c", "d" "e"])
输出:
["c"]
和
f(["a", "b", "c", "d" "e", "f"])
因为有一个偶数个字母,输出:
["c", "d"]
答案 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']