用于列出转换的Python字符串

时间:2013-06-26 13:09:53

标签: python string list type-conversion

我有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(',')

它将包含[]符号。有没有简单的方法呢?

编辑很抱歉重复发帖..我直到现在才看到这篇文章 Converting a string that represents a list, into an actual list object

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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列表具有相同的符号! : - )