1

我有一个string这样的

sample="[2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50]"

我如何将其转换为list?我期望输出是列表,像这样

output=[2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50]

我知道split()功能,但在这种情况下,如果我使用

sample.split(',')

它将接受[]符号。有什么简单的方法吗?

编辑抱歉重复的帖子..直到现在我才看到这篇文章 将表示列表的字符串转换为实际的列表对象

4

2 回答 2

4

如果您要处理 Python 风格的类型(例如元组),您可以使用ast.literal_eval

from ast import literal_eval

sample="[2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50]"

sample_list = literal_eval(sample)
print type(sample_list), type(sample_list[0]), sample_list
# <type 'list'> <type 'int'> [2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50]
于 2013-06-26T13:19:08.137 回答
1

您可以在 python 中使用标准字符串方法:

output = sample.lstrip('[').rstrip(']').split(', ')

如果您使用.split(',')而不是.split(',')您将获得空格和值!

您可以使用以下方法将所有值转换为 int:

output = map(lambda x: int(x), output)

或将您的字符串加载为 json:

import json
output = json.loads(sample)

巧合的是,json 列表与 python 列表具有相同的符号!:-)

于 2013-06-26T13:12:55.747 回答