如何将字符串类型的二维列表(矩阵)转换为整数类型?
解决二维字符串列表转整数矩阵的问题
嘿,我来帮你搞定这个转换问题!首先得指出你当前代码的问题:你写的嵌套循环里,j = int(j)只是把循环中的临时变量j转换成了整数,但并没有把这个值存回原二维列表的对应位置,所以原列表的元素类型根本没发生变化。
下面给你两种实用的解决方案:
方案一:直接修改原列表(通过索引操作)
这种方式会原地修改你的原矩阵,不需要创建新列表:
# 先修正原列表的语法错误(子列表之间需要加逗号) somelist = [["12","10","0"], ["0","33","60"]] for i in range(len(somelist)): for j in range(len(somelist[i])): # 通过索引直接修改原列表的元素 somelist[i][j] = int(somelist[i][j])
运行后,somelist就会变成:[[12, 10, 0], [0, 33, 60]]
方案二:用列表推导式生成新列表(更Pythonic)
如果你更倾向于生成一个全新的整数矩阵(不修改原列表),或者想写更简洁的代码,列表推导式是绝佳选择:
somelist = [["12","10","0"], ["0","33","60"]] # 一行代码完成转换 somelist = [[int(num) for num in row] for row in somelist]
这种写法可读性高,也是Python开发者常用的风格。
另外提个小细节:你给出的原列表定义somelist = [["12","10","0"] ["0","33","60"]]有语法错误,两个子列表之间需要加上逗号,不然会报错哦~
内容的提问来源于stack exchange,提问作者Seba
相关产品推荐
相关产品推荐

