gpt4 book ai didi

python - 在python中将一个字典值分配给另一个字典值

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:23 24 4
gpt4 key购买 nike

我有一个关于在Python中将一个字典值分配给另一个字典值的问题,该值包含一些汉字

# -*- coding: utf-8 -*- 
import string
a = {}
a['1'] = '大' # chinese character
b = {}
b['1'] = a['1']
print a['1']
print a
print b

打印输出是


{'1': '\xe5\xa4\xa7'}
{'1': '\xe5\xa4\xa7'}

为什么 a 之间存在差异和a['1'] ?如何制作print a{'1': '大'}

最佳答案

Why there is a difference between a and a['1']?

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

How to make a['1'] and b['1'] be 大?

它们已经是一样的了。就这么做

print a['1']
print b['1']

添加以下类以按照您的预期转储您的字典。请注意,此代码假定所有字符串均采用 UTF-8 格式

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: 大}

关于python - 在python中将一个字典值分配给另一个字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com