Skip to main content
 首页 » 编程设计

python之从python中原始列表对象的字符串表示转换为/获取原始列表对象

2025年05月04日42mengfanrong

我想将任意列表的字符串表示形式转换回类似原始的列表对象,如下面的代码所述:

list1 = [1,2,3,4] 
list1str = str(list1)  
str2list1 = list1str[1:-1].split(",") #stripping off square brackets from [1,2,3,4] and then splitting 
print(list1)      #[1,2,3,4] 
print(str(list1)) #[1,2,3,4] 
print(str2list1)  #['1', ' 2', ' 3', ' 4']     
                  #Notice that the elements are of string types.  
                  #Also there is a prefix empty space in ' 2' (and also in ' 3' and ' 4') 
                  # --> I will like str2list1 to be ['1', ' 2', ' 3', ' 4'] 

此外,如果我们正在处理嵌套列表:

list2 = [1,2,['a','b'],4] 
list2str = str(list2) 
str2list2 = list2str[1:-1].split(",") 
print(list2)      #[1, 2, ['a', 'b'], 4] 
print(str(list2)) #[1, 2, ['a', 'b'], 4] 
print(str2list2)  #['1', ' 2', " ['a'", " 'b']", ' 4'] 
                  # --> I will like str2list2 to be [1, 2, ['a', 'b'], 4] 

如何从其字符串表示中准确获取原始列表?

请您参考如下方法:

你可以试试:

>>> import ast 
>>> ast.literal_eval("[1,2,['a','b'],4]") 
[1, 2, ['a', 'b'], 4]