【问题标题】:First character of string in PythonPython中字符串的第一个字符
【发布时间】:2018-08-29 08:59:41
【问题描述】:

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

string = "Ľubomír Mezovský"

我只需要获取它的第一个字符。但是当我尝试string[0] 时,它返回了。当我尝试string[:2] 时效果很好。我的问题是为什么? 我需要为几个字符串运行这个,当字符串不是以变音字符开头时,它返回两个字符的子字符串。

我也在使用# encoding=utf8 和 Python 2.7

【问题讨论】:

  • 你用的是什么 Python 版本?
  • 我打赌你使用的是 Python 2.7。您使用的是 Python 2.7 吗?
  • 有趣;使用utf-8,实际上需要两个字符来表示您的第一个字母。
  • 不,是3.6.4
  • 在 Python 3.x 中,它应该可以正常工作:ideone.com/hpE51e,在 python 2.x 中,它按照您的描述输出:ideone.com/yvsPjd

标签: python string python-2.7 encoding


【解决方案1】:

您正在处理字节串(假设您使用的是 Python 2.x)。

使用str.decode将字节字符串转换为unicode字符串,获取第一个字符,然后使用str.encode将其转换回二进制字符串(可选,除非您应该使用字节字符串)

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

【讨论】:

    【解决方案2】:

    尝试将字符串转换为 Unicode 并将编码转换为“utf-8”

    例如:

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

    输出:

    Ľ
    

    python2.7

    中测试

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 1970-01-01
      • 2011-10-29
      • 2018-12-11
      • 2020-02-14
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多