如何在 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)
这是我的尝试,完美无缺。
一个单词中的中位字母是出现在单词中间的字母,如果单词长度是偶数,则中间字母是两个中间字母中左边的一个。
例如,考虑 "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)
这是我的尝试,完美无缺。