Python中字符串的第一个字符

4

我在Python中得到了这个字符串

string = "Ľubomír Mezovský"

我只需要获取它的第一个字符。但是当我尝试使用string[0]时,它返回了。当我尝试使用string[:2]时,它能正常工作。我的问题是为什么?

我需要对多个字符串运行此操作,当字符串不以变音符号开头时,它会返回两个字符的子字符串。

我还在使用# encoding=utf8和Python 2.7。


你使用的是哪个Python版本? - Fred Larson
我敢打赌你正在使用Python 2.7。你是在使用Python 2.7吗? - Jongware
有趣的是,使用 utf-8,实际上需要两个字符来表示您的第一个字母。 - cs95
1
在Python 3.x中,它应该可以正常工作:https://ideone.com/hpE51e,在Python 2.x中,它的输出与您描述的相同:https://ideone.com/yvsPjd。 - falsetru
你说得对。我已经安装了Python 3.6.4,但是由于某些原因,PyCharm正在使用2.7版本。我需要看一下它,谢谢。 - P. May
显示剩余2条评论
2个回答

4

如果你使用的是Python 2.x,那么你正在处理字节字符串。

使用str.decode将字节字符串转换为Unicode字符串,获取第一个字符,然后使用str.encode将其转换回二进制字符串(除非你需要使用字节字符串,否则此步骤可选)。

>>> string = "Ľubomír Mezovský"
>>> print(string.decode('utf-8')[0].encode('utf-8'))
Ľ

0
尝试将字符串转换为Unicode,然后编码为"utf-8"。 例如:
string = u"Ľubomír Mezovský"
print string[0].encode('utf-8')

输出:

Ľ

Python2.7中测试过


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接