python列表存储乱码_python 列表中文乱码

今天在学习python列表的时候遇到中文乱码问题,如下:

# -*- coding: UTF-8 -*-

print "列表"

list1 = ['张三',"李四","王二"]

list2 = [1,2,3,4,5]

list3 = ["1992","1234",25,120.5]

print list1

for i in list1:

print i;

print str(list1).decode('string_escape')

print list2

print list3

输出结果为:

列表

['\xe5\xbc\xa0\xe4\xb8\x89', '\xe6\x9d\x8e\xe5\x9b\x9b', '\xe7\x8e\x8b\xe4\xba\x8c']

张三

李四

王二

['张三', '李四', '王二']

[1, 2, 3, 4, 5]

['1992', '1234', 25, 120.5]

可以看到,在列表中有中文的时候,直接输出的结果会有乱码,但是不是列表的中文没有乱码,而且列表循环输出也不会乱码,在网上百度了一下,原因是:当输出list时,里面的元素按%r(调__repr__())处理,当输出str时,按%s(调__str__())处理。处理方法为:

print str(list1).decode('string_escape')

咋也不知道为啥要这样,咋也不敢问,反正是没有乱码了,但是这样的方法我认为是不可取的,因为不可能每次输出都在后面加上decode('string_escape'),希望后续可以找到其他方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值