python - 如何将列表转换为字符串并将此字符串转换回初始列表?

标签 python string list

我有以下 Python 问题,我想知道是否有直接的方法来处理它(使用我不知道的特定函数等)。

我有一个包含不同类型输入(整数、字符串等)的列表。我使用 str() 函数将列表转换为字符串。现在变量的类型是一个字符串。我对该字符串进行了一些处理,然后我想将该字符串转换回具有它具有的初始变量类型(整数、字符串等)的初始列表。

这是一个例子:

             list = [1,'house',3]
             print(type(list))  # gives <class list>
             print(type(list[0])) # gives <type int>
             print(type(list[1])) # gives <type str>

             string = str(list)
             print(type(string)) # gives <type string>
             ... # use this string to process data


            # convert the string into the initial list
             ? ?

我想也许我可以在开始时迭代我的列表并将其属性的类型存储在列表中 (list_b)。稍后当我将字符串转换为列表时,我将分解字符串并将字符串转换为与 list_b 对应的变量类型。

我想知道是否有比这更直接的方法?

最佳答案

您可以使用 ast.literal_eval将字符串转换为 Python 对象。

from ast import literal_eval

s = "[1, 'house', 3]"
l = literal_eval(s)
print(l)
# [1, 'house', 3]

请注意,根据上面链接的文档,字符串只能由字符串、字节、数字、元组、列表、字典、集合、 bool 值和组成。

关于python - 如何将列表转换为字符串并将此字符串转换回初始列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442093/

相关文章:

python - 在 pandas python 中按列计算匹配部分字符串的出现次数

python - 一次反转Python中的字符串两个字符(网络字节顺序)

c++ - 如何使用正则表达式从字符串中提取值

python - 在每个字符串中标记(分割?)数据集的最佳方法

python - 提取双引号之间的字符串

jquery - 链接 jQuery 元素以在悬停时显示

python - 返回第三列处具有最大值的子列表的第一项

Python重命名字符串

python - Python cv2 VideoWriter文件损坏

python - 在不规则列表列表中查找最长列表的长度