python打印列表中的中文_python不同版本list内中文输出问题

foo = ['abc', '你好']

python2.7 下,

print foo

中文显示的编码, 必须要用下面的方式输出才能显示中文。

for f in foo:

print f

python3.0以上没有这些问题。哪里有变化?有没有什么办法在2.7的情况下, 我在输出list的时候直接输出的就是中文呢?

import json

print json.dumps(dict_list, encoding = 'UTF-8', ensure_ascii = False)

py3k的字符串只有str和unicode(binary)和两种 默认是utf8编码 所以print一个list用到的str()也是用utf8解码

py27需要各种decode encode才能编码解码

Python 3比2.x对unicode支持更好一些,但是楼主直接print foo完全没有意义啊,这个只是象征性的print出foo序列化的结果,内部实现时可能也是遍历输出的。

如果你要输出序列化结果,不如直接写个方法,性能应该也没差#!/usr/bin/python

# -*- coding: utf-8 -*-

def printSerilize(foo):

print "[",

for f in foo:

print "\'" + f + "\', ",

print "]",

foo = ['abc', '你好']

printSerilize(foo)

最简单的办法就是:In [1]: foo = ['abc', '你好']

In [2]: print " ".join(foo)

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20401.html

相关文章 Recommend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值