Skip to main content
 首页 » 编程设计

Python:更改字符串列表中所有元素的格式

2025年05月04日20jirigala

我有一个字符串列表:

a = ['[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]', 
     '[2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]', 
     '[3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0]', 
     '[4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0]', 
     '[5.0, 5.0, 5.0]',  
     '[1.0]' 
    ] 

当我使用下面的代码时,列表中每个元素的格式都是字符串,而不是 int。

a= tuple(a.reshape(1,-1)[0]) 

我需要做的是更改所有元素的格式。比如

a[1][2] = 2 

但是,在我的代码中:

a[1][2] = '.' 

请您参考如下方法:

a 是一个字符串列表。我不知道你从哪里得到它,但据我了解你的问题,你希望它是一个包含数字的列表列表。这可能是 eval 函数的用例。

>>> a 
['[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]', '[2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]', '[3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0]', '[4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0]', '[5.0, 5.0, 5.0]', '[1.0]'] 
>>> a = [eval(x) for x in a] 
>>> a 
[[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0], [3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0], [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0], [5.0, 5.0, 5.0], [1.0]] 
>>> a[1][2] 
2.0 

如果你不想使用eval,我会建议

a = [[float(x) for x in liststring[1:-1].split(',')] for liststring in a]