将字符串转换为列表Python

将字符串转换为列表Python,python,string,list,Python,String,List,我从文件中读取列表值,如何将列表值转换为列表值?所以列表变量[0]应该是“apple”。您可以使用函数。小心你传递给eval的东西,恶意的事情可能会发生 list_val = '["apple", "blue", "green", "orange", "cherry", "white", "red", "violet"]' print type(list_var) str print type(list_var[0]) '[' >>> list_val = '["appl

我从文件中读取列表值,如何将列表值转换为列表值?所以列表变量[0]应该是“apple”。

您可以使用函数。小心你传递给eval的东西,恶意的事情可能会发生

list_val = '["apple", "blue", "green", "orange", "cherry", "white", "red", "violet"]'

print type(list_var)
str

print type(list_var[0])
'['
>>> list_val = '["apple", "blue", "green", "orange", "cherry", "white", "red", "violet"]'
>>> 
>>> from ast import literal_eval
>>> list_val = literal_eval(list_val)
>>> list_val[0]
'apple'

我建议您使用
json

list_var = eval(list_val)
导入json
list_val='[“苹果”、“蓝色”、“绿色”、“橙色”、“樱桃色”、“白色”、“红色”、“紫色”]
a=json.load(列表值)
打印
#[苹果、蓝色、绿色、橙色、樱桃、白色、红色、紫色]
打印类型(a)
# 
打印[0]
#“苹果”

另一种方法是使用正则表达式:

import json
list_val = '["apple", "blue", "green", "orange", "cherry", "white", "red", "violet"]'
a = json.loads(list_val)
print a
# [u'apple', u'blue', u'green', u'orange', u'cherry', u'white', u'red', u'violet']
print type(a)
# <type 'list'>
print a[0]
# 'apple'

为什么不将list_val配置为list,对于每个值,只需将项目附加到列表中?文件最初是如何结束的?您是否试图在程序运行之间记住一些列表内容?这当然适用于示例输入。最佳选择取决于源编码与解码器的匹配。在这种情况下,源代码很可能是JSON。eval是邪恶的,请改用
literal\u eval
>>> import re
>>> list_val = '["apple", "blue", "green", "orange", "cherry", "white", "red", "violet"]'
>>> result = re.findall(r'\"([^\"]+)\"', list_val)
>>> result[0]
'apple'