在列表/集中存储变音符号

用户名

我有带有特殊德语字符(ÄÖÜäöüß)的单词,并且想要逐个字母地迭代单词。拥有这些特殊字符会带来问题,因为它们会转换为两个字符:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "ä"            # prints ä
print len(["ä"])     # prints 1
print len(list("ä")) # prints 2

s = set()
s.add("ä")
a = next(iter(s))

print s      # prints: set(['\xc3\xa4'])
print a      # prints: ä
print len(a) # prints: 2

我需要更改什么才能始终得到1作为答案,现在打印2?

绿玉

您可以在python scrip的顶部使用它(必须是第一条语句)

from __future__ import unicode_literals

这具有将u前缀隐式应用于所有字符串的效果。

并不是毫无争议的,但是我将其作为避免unicode问题的良好实践的一部分。您还应该像注释中提到的@Basil Bourque一样进行操作,并阅读有关unicode的文章,以便充分了解情况。而且,与unicode_literals一样,unicode三明治对于避免此类问题也很重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章