Python 将每个子集的第三个str更改为int

Python 将每个子集的第三个str更改为int,python,list,int,Python,List,Int,我想把列表中的每三个字符串作为数字 例如: stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56'] 到 我试过了 for i in stat: i[2]= int(i[2]) 有人能帮忙吗?通常,建立一个新列表比修改一个现有列表更容易 我会使用iterable解包将子列表中的每个元素解包为三个名称,然后在第三个名称上使用int >>> stat = [[1 , '2', '3'], [34, '32', '

我想把列表中的每三个字符串作为数字 例如:

stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']

我试过了

for i in stat:
    i[2]= int(i[2])

有人能帮忙吗?

通常,建立一个新列表比修改一个现有列表更容易

我会使用iterable解包将子列表中的每个元素解包为三个名称,然后在第三个名称上使用
int

>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>> stat = [[a, b, int(c)] for a, b, c in stat]
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]
此列表将构建一个新列表并重新分配名称
stat

但是,您的原始代码应该可以正常工作:

>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>> 
>>> for i in stat:
...:    i[2] = int(i[2])
...:    
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]

这将在适当的位置修改
stat
。我建议使用比
I
更好的名称,例如
子列表
i
让我想到整数。

通常,构建新列表比修改现有列表更容易

我会使用iterable解包将子列表中的每个元素解包为三个名称,然后在第三个名称上使用
int

>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>> stat = [[a, b, int(c)] for a, b, c in stat]
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]
此列表将构建一个新列表并重新分配名称
stat

但是,您的原始代码应该可以正常工作:

>>> stat = [[1 , '2', '3'], [34, '32', '4'], [45, '21', '56']]
>>> 
>>> for i in stat:
...:    i[2] = int(i[2])
...:    
>>> stat
>>> [[1, '2', 3], [34, '32', 4], [45, '21', 56]]

这将在适当的位置修改
stat
。我建议使用比
I
更好的名称,例如
子列表
i
让我想到整数。

我觉得你的代码很好(有适当的缩进)。你尝试的应该足够了。有什么问题吗?循环看起来很好。您的嵌套列表声明缺少一个结束括号…您的代码在我看来很好(有适当的缩进)。您尝试的应该足够了。有什么问题吗?循环看起来很好。但嵌套列表声明缺少一个右括号。。。