我有一个字符串:
my_string = "'T1', 'T2', 'T3', 'T4', True, False"
我想转换为这样的列表
my_list = ['T1', 'T2', 'T3', True, False]
我尝试执行 my_string.split(', ')
但它会将 True
和 False
转换为 str
,这是我不想要的。
我可以编写一个函数,但我觉得有一些Pythonic并且很容易做到这一点。
最好的方法是什么?
最佳答案
您可以使用 ast.literal_eval
来 turn a string representation of a list into a list 。要使字符串代表列表,您需要添加左括号和右括号。
from ast import literal_eval
my_string = "'T1', 'T2', 'T3', 'T4', True, False"
my_list = literal_eval("[" + my_string + "]")
print(my_list)
#['T1', 'T2', 'T3', 'T4', True, False]
可以看到最后两个元素的类型是bool
:
print([type(x) for x in my_list])
#[str, str, str, str, bool, bool]
<小时/>
更新
@Chris_Rands 提出的更简洁的解决方案
my_list = list(literal_eval(my_string))
关于Python 将字符串和 boolean 值转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56467647/