Python中几种常见数据结构的相互转换:字符串(str)、字典(dict)、列表(list)。

一、字符串–列表

字符串转列表

1.使用内置函数 list()


2.使用内置函数 eval()


3.使用内置模块 json.loads() 方法


4.使用 split() 进行分割


如果我们要对多个字符进行分割,那么可以使用内置模块 re.split() 方法。


列表转字符串

1.使用内置函数 str()


上面直接使用 str(),是将整个列表转换为字符串,如果我们不想改变列表的类型,只是要将列表中所有元素转为字符串,那么可以借助列表推导式来实现。


2.使用 join() 进行拼接


3.使用内置模块 json.dumps() 方法


需要注意的是,按 json 的标准规范是使用双引号 “”,因此在转换之后得到的json字符串是双引号的。

二、字符串–字典

字符串转字典

1.使用内置函数 eval()


2.使用内置模块 json.loads() 方法


3.使用内置模块 ast.literal_eval() 方法


我们发现,Python中已经有了内置函数 eval(),但现在却又出现个类似的 ast.literal_eval()方法,二者的区别是什么呢?

这里主要是出于安全性的考虑,因为 ast.literal_eval()会判断计算后的结果是不是合法的python类型,如果是则进行运算,否则就不进行运算,而 eval() 则不会管这些,即使字符串是一个命令,它也会进行解析。

因此,相比 eval() 函数, ast.literal_eval()更加安全,更被 推荐使用 。

字典转字符串

1.使用内置函数 str()


2.使用内置模块 json.dumps() 方法


需要注意的是,按 json 的标准规范是使用双引号 “”,因此在转换之后得到的json字符串是双引号的。

如果我们想让得到的字符串仍保持单引号,可以通过 replace() 方法来简单处理一下。