如何在 Python 2.7 中查找字符串的中值字符

How to find median character of a string in Python 2.7

一个单词中的中位字母是出现在单词中间的字母,如果单词长度是偶数,则中间字母是两个中间字母中左边的一个。

例如,考虑 "apple"。该程序应该 return 'p'。

作为另一个例子,请考虑 "baba"。程序应该return'a'.

此外,我想问一下 python 中的 statistics.median 是否能够做到这一点。(我不知道它是否适用于字符串以及我是新手python编程)

请更喜欢在 python 2.7 中回答,因为与 python 3 相比,我在 python 2.7 中更舒服,尽管欢迎任何帮助。

谢谢 :D

你真的应该尝试自己解决问题。 Stack-overflow 不是免费的代码服务。

然而,它就像获取数组的大小、将其减半然后访问减半的索引一样简单。

my_str = "Hello World!"
half_len = int(len(my_str) / 2)
print my_str[half_len]

在将 str 的长度减半时确保 return 一个 int(整数)。否则减半的值可能 return 一个小数位值,这将在尝试通过索引访问 str 时抛出异常。

将小数转换为 int(通过 int())时,默认情况下它会向下舍入到最接近的整数。这在大多数(所有?)语言中都很常见。

Python 字符串是字符列表。例如:

a = "My String"

print a[0] #Prints M

print a[-1] #Prints g

len returns 字符串的整数长度

print len(a) #Prints 9

使用这个我们可以:

def returnMedian(mystring):
    return mystring[(len(mystring)-1)/2]  #len returns the length of the string

print returnMedian("abcde")  #prints c
print returnMedian("baba")   #prints a
String = "a b a x a d a 5"
Item = String.split(" ")
if float.is_integer(len(Item) / 2):
    Item_1, Item_2 = Item[int((len(Item) / 2) - 1)], Item[int(((len(Item) / 2)))]
    print(Item_1, Item_2)
else:
    Item = Item[int(((len(Item) / 2) - 0.5))]
    print(Item)

这是我的尝试,完美无缺。