首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中,将一个字典值赋给另一个字典值

在python中,将一个字典值赋给另一个字典值
EN

Stack Overflow用户
提问于 2016-01-17 01:44:32
回答 1查看 303关注 0票数 1

我有一个关于在python中将一个字典值赋给另一个字典值的问题,该值包含一些中文字符。

代码语言:javascript
复制
# -*- coding: utf-8 -*- 
import string
a = {}
a['1'] = '大' # chinese character
b = {}
b['1'] = a['1']
print a['1']
print a
print b

打印输出是

代码语言:javascript
复制
大
{'1': '\xe5\xa4\xa7'}
{'1': '\xe5\xa4\xa7'}

为什么aa['1']会有区别?如何让print a成为{'1': '大'}

EN

回答 1

Stack Overflow用户

发布于 2016-01-17 01:47:19

为什么a和‘1’之间有区别?

第一个(a)是包装在字典中的字符。当您打印字典时,Python将打印字符的原始字节(\xe5\xa4\xa7),这是它的UTF-8编码。当您直接使用print a[1]打印字符串时,Python会将这3个字节解码为各自的字符。

如何使a'1‘和b'1’成为大?

它们已经是一样的了。只管去做

代码语言:javascript
复制
print a['1']
print b['1']

如您所愿,添加以下类以转储字典。注意,这段代码假定所有字符串都是UTF-8格式。

代码语言:javascript
复制
class MyPrettyPrinter(pprint.PrettyPrinter):
    def format(self, object, context, maxlevels, level):
        if isinstance(object, str):
            return (object.decode('utf8'), True, False)
        return pprint.PrettyPrinter.format(self, object, context, maxlevels, level)

MyPrettyPrinter().pprint(a)  # {1: 大}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34830074

复制
相关文章

相似问题

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