python list 中文
PHP中文网
PHP中文网 2017-04-17 11:07:29
[Python讨论组]
foo = ['abc', '你好']

python2.7 下,

print foo

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

for f in foo:
     print f

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
PHP中文网

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)
伊谢尔伦

py3k的字符串只有str和unicode(binary)和两种 默认是utf8编码 所以print一个list用到的str()也是用utf8解码
py27需要各种decode encode才能编码解码

大家讲道理

最简单的办法就是:

In [1]: foo = ['abc', '你好']

In [2]: print " ".join(foo)
天蓬老师
import json
print json.dumps(dict_list, encoding = 'UTF-8', ensure_ascii = False)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号