将整数列表的列表转换为字符串列表

时间:2016-09-15 12:14:01

标签: python string list

我有一个字符串列表:

['[2, 8]', '[8, 2]', '[2, 5, 3]', '[2, 5, 3, 0]', '[5, 3, 0, 2]']  

我希望输出看起来像

['28','82','253',2530',5302']

我尝试过使用

string1= ''.join(str(e) for e in list[0])

我得到print(string1)的输出为:

[2, 8]

我在这里做错了什么?

2 个答案:

答案 0 :(得分:5)

您实际上没有list listlist str。因此,您可以使用ast.literal_eval将每个字符串解释为列表,然后转换为strjoin

>>> l = ['[2, 8]', '[8, 2]', '[2, 5, 3]', '[2, 5, 3, 0]', '[5, 3, 0, 2]']
>>> from ast import literal_eval
>>> [''.join(str(j) for j in literal_eval(i)) for i in l]
['28', '82', '253', '2530', '5302']

答案 1 :(得分:3)

如果您只想使用内置函数(没有导入),您可以定义一个只解析数字并将该函数映射到列表的函数。

def remove_non_digits(z):
    return "".join(k if k.isdigit() else "" for k in z)

>>> map(remove_non_digits, a)
['28', '82', '253', '2530', '5302']