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

Python 将整数列表转换为字符串列表,python,string,list,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]) 我获得打印输出(string1),如下所示: 我做错了什么?你实际上没有列表的列表的,你有列表的str。因此,您可以使用将每个字符串解释为一个列表,然后转换为s

我有一个字符串列表:

['[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])
我获得打印输出(string1),如下所示:


我做错了什么?

你实际上没有
列表的
列表的
,你有
列表的
str
。因此,您可以使用将每个字符串解释为一个列表,然后转换为
str
join

>>> 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']

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

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']

请注意,对于python3,您必须强制转换到
list
,因为
map
不会生成列表。
['[2,8]'、[8,2]'、[2,5,3]'、[2,5,3,0]'、[5,3,0,2]]
不是列表列表。这是一个字符串列表。@ElmoVanKielmo,是的。我忘了我已将追加从列表更改为字符串。谢谢你指出这一点。
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']