convert a string 2d list back to 2d list in python
本问题已经有最佳答案,请猛点这里访问。
我刚开始玩Python。我知道我们可以使用str()将任何列表转换为字符串像:
1 2 3 4 5 6 7 8 9 10 11 12 | >>> l = [[1,1] , [2,2] , [3,3]] >>> l [[1, 1], [2, 2], [3, 3]] >>> type(l) <type 'list'> >>> str(l) '[[1, 1], [2, 2], [3, 3]]' >>> list_string = str(l) >>> list_string '[[1, 1], [2, 2], [3, 3]]' >>> type(list_string) <type 'str'> |
有没有办法把列表字符串转换回二维列表??基本上,是否有一个函数可以将其转换回原始形式?
1 2 3 4 | old_list = magic_conversion_func(list_string) >>>old_list [[1, 1], [2, 2], [3, 3]] |
我尝试了list(),但它将字符串中的每个字符转换为一个新的list元素。
1 2 | >>> list(list_string) ['[', '[', '1', ',', ' ', '1', ']', ',', ' ', '[', '2', ',', ' ', '2', ']', ',', ' ', '[', '3', ',', ' ', '3', ']', ']'] |
那不是我想要的
使用ast.literal评估
1 2 3 4 | >>> list_string = '[[1, 1], [2, 2], [3, 3]]' >>> import ast >>> type(ast.literal_eval(list_string)) <type 'list'> |
使用
1 2 3 4 | >>> l = [[1,1] , [2,2] , [3,3]] >>> list_string = str(l) >>> eval(list_string) [[1, 1], [2, 2], [3, 3]] |
但是使用
这也同样有效,与您对
1 2 | import numpy as np print np.array(list_string) |