1、元组类型转换成字符串时,字符串中默认包含一个空格字符。

>>> a = divmod(10, 3)
>>> a
(3, 1)
>>> type(a)
<class 'tuple'>
>>> len(a)          # 元组数据a的长度是2
2
>>> b = str(a)    # 将a转化成字符串
>>> b
'(3, 1)'
>>> type(b)
<class 'str'>
>>> len(b)    #可以看到b的长度是6,逗号和1之间有一个空格字符
6

下面使用的字符串s相同,如下:

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 
       杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 
       金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 
       鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 
       阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 
       乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 
       忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 
       李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 
       逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 
       洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 
       黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 
       张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 
       洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 
       完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 
       郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 
       谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 
       双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 
       逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''

2、字符串类型通过split()函数转换成列表类型

>>> ls = s.split()
>>> ls
['双儿', '洪七公', '赵敏', '赵敏', '逍遥子', '鳌拜', '殷天正', '金轮法王', '乔峰', '杨过', '洪七公', '郭靖', '杨逍', '鳌拜', '殷天正', '段誉', '杨逍', '慕容复', '阿紫', '慕容复', '郭芙', '乔峰', '令狐冲', '郭芙', '金轮法王', '小龙女', '杨过', '慕容复', '梅超风', '李莫愁', '洪七公', '张无忌', '梅超风', '杨逍', '鳌拜', '岳不群', '黄药师', '黄蓉', '段誉', '金轮法王', '忽必烈', '忽必烈', '张三丰', '乔峰', '乔峰', '阿紫', '乔峰', '金轮法王', '袁冠南', '张无忌', '郭襄', '黄蓉', '李莫愁', '赵敏', '赵敏', '郭芙', '张三丰', '乔峰', '赵敏', '梅超风', '双儿', '鳌拜', '陈家洛', '袁冠南', '郭芙', '郭芙', '杨逍', '赵敏', '金轮法王', '忽必烈', '慕容复', '张三丰', '赵敏', '杨逍', '令狐冲', '黄药师', '袁冠南', '杨逍', '完颜洪烈', '殷天正', '李莫愁', '阿紫', '逍遥子', '乔峰', '逍遥子', '完颜洪烈', '郭芙', '杨逍', '张无忌', '杨过', '慕容复', '逍遥子', '虚竹', '双儿', '乔峰', '郭芙', '黄蓉', '李莫愁', '陈家洛', '杨过', '忽必烈', '鳌拜', '王语嫣', '洪七公', '韦小宝', '阿朱', '梅超风', '段誉', '岳灵珊', '完颜洪烈', '乔峰', '段誉', '杨过', '杨过', '慕容复', '黄蓉', '杨过', '阿紫', '杨逍', '张三丰', '张三丰', '赵敏', '张三丰', '杨逍', '黄蓉', '金轮法王', '郭襄', '张三丰', '令狐冲', '赵敏', '郭芙', '韦小宝', '黄药师', '阿紫', '韦小宝', '金轮法王', '杨逍', '令狐冲', '阿紫', '洪七公', '袁冠南', '双儿', '郭靖', '鳌拜', '谢逊', '阿紫', '郭襄', '梅超风', '张无忌', '段誉', '忽必烈', '完颜洪烈', '双儿', '逍遥子', '谢逊', '完颜洪烈', '殷天正', '金轮法王', '张三丰', '双儿', '郭襄', '阿朱', '郭襄', '双儿', '李莫愁', '郭襄', '忽必烈', '金轮法王', '张无忌', '鳌拜', '忽必烈', '郭襄', '令狐冲', '谢逊', '梅超风', '殷天正', '段誉', '袁冠南', '张三丰', '王语嫣', '阿紫', '谢逊', '杨过', '郭靖', '黄蓉', '双儿', '灭绝师太', '段誉', '张无忌', '陈家洛', '黄蓉', '鳌拜', '黄药师', '逍遥子', '忽必烈', '赵敏', '逍遥子', '完颜洪烈', '金轮法王', '双儿', '鳌拜', '洪七公', '郭芙', '郭襄', '赵敏']
>>> type(ls)
<class 'list'>

3、列表类型转换成字典类型
利用d.get(i, 0)函数,采用循环语句进行创建。

ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1

>>> d
{'逍遥子': 7, '金轮法王': 10, '杨过': 8, '韦小宝': 3, '令狐冲': 5, '赵敏': 11, '张三丰': 9, '谢逊': 4, '阿紫': 8, '袁冠南': 5, '李莫愁': 5, '完颜洪烈': 6, '鳌拜': 9, '虚竹': 1, '岳不群': 1, '梅超风': 6, '殷天正': 5, '陈家洛': 3, '郭襄': 8, '慕容复': 6, '黄蓉': 7, '双儿': 9, '杨逍': 10, '张无忌': 6, '郭靖': 3, '阿朱': 2, '王语嫣': 2, '小龙女': 1, '岳灵珊': 1, '忽必烈': 8, '段誉': 7, '乔峰': 9, '郭芙': 9, '洪七公': 6, '黄药师': 4, '灭绝师太': 1}
>>> type(d)
<class 'dict'>

4、字典类型转换成列表类型

ls = list(d.items()):表示将字典d转化成列表,其中每个键值对以元组类型表示。

ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1])

>>> ls
[('灭绝师太', 1), ('小龙女', 1), ('虚竹', 1), ('岳不群', 1), ('岳灵珊', 1), ('阿朱', 2), ('王语嫣', 2), ('韦小宝', 3), ('陈家洛', 3), ('郭靖', 3), ('黄药师', 4), ('谢逊', 4), ('袁冠南', 5), ('令狐冲', 5), ('李莫愁', 5), ('殷天正', 5), ('完颜洪烈', 6), ('慕容复', 6), ('洪七公', 6), ('梅超风', 6), ('张无忌', 6), ('段誉', 7), ('逍遥子', 7), ('黄蓉', 7), ('忽必烈', 8), ('杨过', 8), ('郭襄', 8), ('阿紫', 8), ('乔峰', 9), ('双儿', 9), ('郭芙', 9), ('张三丰', 9), ('鳌拜', 9), ('杨逍', 10), ('金轮法王', 10), ('赵敏', 11)]
>>> type(ls)
<class 'list'>
>>> ls[0]
('灭绝师太', 1)
>>> type(ls[0])
<class 'tuple'>

ls = list(d.keys()):表示将字典d的键转化成列表。

ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1
ls = list(d.keys())

>>> ls
['郭靖', '郭襄', '殷天正', '陈家洛', '金轮法王', '李莫愁', '令狐冲', '灭绝师太', '逍遥子', '岳不群', '段誉', '小龙女', '梅超风', '慕容复', '杨逍', '张无忌', '阿紫', '双儿', '忽必烈', '鳌拜', '完颜洪烈', '黄药师', '杨过', '赵敏', '岳灵珊', '韦小宝', '郭芙', '洪七公', '张三丰', '阿朱', '谢逊', '虚竹', '王语嫣', '黄蓉', '乔峰', '袁冠南']
>>> type(ls[0])
<class 'str'>

ls = list(d.values()):表示将字典d的值转化成列表。若将再将列表转化成字符串类型,则逗号和每个值之间有一个空格字符。

ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1
ls = list(d.values())

>>> ls
[5, 3, 3, 6, 1, 6, 7, 9, 6, 3, 7, 5, 1, 1, 4, 9, 6, 1, 1, 9, 2, 8, 7, 2, 8, 10, 8, 6, 8, 10, 5, 11, 9, 4, 9, 5]
>>> type(ls[0])
<class 'int'>
>>> b = str(ls)
>>> b
'[6, 4, 1, 4, 5, 1, 6, 7, 3, 9, 5, 6, 1, 11, 7, 7, 8, 9, 6, 10, 8, 3, 5, 10, 2, 1, 8, 9, 2, 1, 6, 9, 5, 8, 9, 3]'
>>> b[0:5]
'[6, 4'

注意:元素为int型的列表,转换成字符串,字符串里包含空格符。具体如下:

>>> a = list(range(5))
>>> a
[0, 1, 2, 3, 4]
>>> b = str(a)
>>> b
'[0, 1, 2, 3, 4]'
>>> len(b)
15