急求助:python中文兼容问题,striing/list/dict不同显示结果?

python在中文兼容方面的问题,很棘手! 望高手帮助解决?

编辑test.py文件,如下:
# -*- coding: cp936 -*-
a = '中文'
b = ['中文']
c = [1:'中文','中文':2]

print a
print b
print c

运行之后,在shell当中得到的结果:

中文
['\xd6\xd0\xce\xc4']
{'\xd6\xd0\xce\xc4': 2, 1: '\xd6\xd0\xce\xc4'}

如何才能让运行之后的结果,list和dict当中的中文也正确显示呢? 多谢多谢!!

如果这样:
>>> a 回车
'\xd6\xd0\xce\xc4'
其实这才是a中的数值,'中文'是在显示的时候才会出现的

变量a与变量b和c是不一样的
a是字符串,可以print打印
b和c不可以print的,他们print的结果与
>>> b 回车
>>> c 回车
的效果是一样的,显示变量的内容
汉字是显示的时候出现,保存的仅仅是编码而已

其实 a==b[0] 同样 a==c.keys()[0]==c[1]

可以这样打印:
for i in b:
_print i

for i in c.keys():
_print i, c[i]
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-05
# -*- coding: cp936 -*-
a = '中文'
b = ['中文']
c = {1:'中文', '中文':2}
dstring = ''
lstring = ''

# 列表要整理一下,但前列表只有一个元素,但是真实环境中可能不止一个,
# 加一个处理过程。
for item in b:
if b[-1] == item:
lstring += '%s' % item
else:
lstring += '%s, ' % item

# 处理字典
for t in c.keys():
fill = '%s : %s' % (t, c[t])
dstring += fill
if c.keys().index(t) +1 != len(c):
dstring += ', '

print a
print '[%s]' % lstring
print '{%s}' % dstring
===============
我也是刚试出来。
但是,那个字典的定义好像有问题。
这段代码执行以后和定义的数据室一样的。
>>> =============== RESTART ===============
>>>
中文
[中文]
{中文 : 2, 1 : 中文}
>>>本回答被提问者采纳
相似回答