首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将货币存储在列表/集合中

将货币存储在列表/集合中
EN

Stack Overflow用户
提问于 2015-05-19 14:00:10
回答 2查看 128关注 0票数 4

我有一些具有特殊德语字符的单词(于聚乙二醇),并希望逐个字母地遍历这些单词。拥有这些特殊字符会产生问题,因为它们被转换为两个字符:

代码语言:javascript
运行
复制
#!/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是打印的地方?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 14:13:19

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

from __future__ import unicode_literals

这样做的效果是隐式地将u前缀应用于所有字符串。

这是不是无可争辩的,但作为避免unicode问题的良好实践的一部分,这是我的首选。您还应该像评论中提到的@Basil Bourque一样,阅读关于unicode的文章,这样您就可以很好地了解情况。而且,与unicode_literals一样,unicode三明治对于避免这类问题也很重要。

票数 1
EN

Stack Overflow用户

发布于 2015-05-19 14:02:00

在Python2.7中,Unicode字符串的处理方式如下:

代码语言:javascript
运行
复制
>>> print "ä"
ä
>>> len("ä")
2
>>> print u"ä"
ä
>>> len(u"ä")
1

使用Unicode字符串的u前缀。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30327853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档