在字符串和列表互相转换后长度是否一样呢?请看一段很简单的代码
#定义字符串
strName = '我是张三'
#输出字符串的长度,这里是4
print("strName的长度是:", len(strName))
#将字符串转为列表
strList = list(strName)
# 输出转后的列表
print("strList:", strList)
#再次转为字符串
strNow = str(strList)
print("strList的长度是:", len(strNow))
以上代码输出结果是:
strName的长度是: 4
strList: ['我', '是', '张', '三']
strList的长度是: 20
我们注意到最后输出的长度是20,不是4,这中间就做2次转换,最后也是一个字符串并没有增加其他字符,为什么会这样呢,让我们分析下原因
首先,定义了一个字符串“我是张三”,长度是4,没有问题
#输出字符串的长度
print("strName的长度是:", len(strName)) #输出4
其次,是输出列表:
print("strList:", strList)#输出strList: ['我', '是', '张', '三']
最后,将列表转为字符串:
strNow = str(strList)# ['我', '是', '张', '三']
注意:关键就在这里,转字符串实际是将列表内容转了,我们都知道字符串表示用单/双引号表示:“我是张三”,而列表->字符串是:“[‘我’, ‘是’, ‘张’, ‘三’]”,会比原来的字符串多一些符号
2个中括号:[ ]
8个单引号:’
4个汉字:我,是,张,三
3个逗号:,
3个空格:是,张,三前边位置
总计:20
以上就是转换为长度变的根本原因了,试试再增加一段代码,看看效果是什么?
#输出结果是什么?
print(list(strNow))