关于python:如何将字符串转换回列表

How to cast string back into a list

我有一个清单:

1
ab = [1, 2, a, b, c]

我做到了:

1
strab = str(ab).

因此,strab现在是一个字符串。

我想把那根绳子重新放到一个列表中。

我该怎么做?


最简单和最安全的方法是使用ast.literal_eval()

1
2
3
4
5
6
7
8
9
10
11
12
13
import ast

ab = [1, 2, 'a', 'b', 'c']    # a list
strab = str(ab)               # the string representation of a list
strab
=>"[1, 2, 'a', 'b', 'c']"

lst = ast.literal_eval(strab) # convert string representation back to list
lst
=> [1, 2, 'a', 'b', 'c']

ab == lst                     # sanity check: are they equal?
=> True                       # of course they are!

请注意,调用EDOCX1[1]也有效,但它不安全,您不应使用它:

1
2
eval(strab)
=> [1, 2, 'a', 'b', 'c']

使用AST包:

1
2
import ast
lst = ast.literal_eval(strab)


在使用序列设置numpy数组元素的上下文中,可以使用内置联接将其绕过设置为字符串:

1
str_list_obj = '-'.join(list_obj)

然后,在需要时,使用相同的连接器再次拆分字符串序列(前提是它不出现在列表的字符串中):

og_list_obj = str_list_obj.split("-")