【问题标题】:How can I convert the string values of a 2D array to integer values in Python?如何在 Python 中将二维数组的字符串值转换为整数值?
【发布时间】:2020-10-03 02:24:05
【问题描述】:

我有这样的代码:

a=[['1','2','3'], ['4','5','6']]

for i in range(len(a)):
    a[i][i]=int(a[i][i])

print(a)

输出:

[[1, '2', '3'], ['4', 5, '6']]

它只将第一个值转换为整数,其余的保留为字符串。有解决办法吗?

【问题讨论】:

  • 请注意,这不会只转换第一个值。它转换[0][0] (1) 和[1][1] (5) 的值。

标签: python arrays string multidimensional-array integer


【解决方案1】:

您可以在列表理解中将map 子列表int 键入。

a = [['1','2','3'], ['4','5','6']]

a_new = [list(map(int, i)) for i in a]

# [[1, 2, 3], [4, 5, 6]]

【讨论】:

  • 这是最好的答案。
【解决方案2】:

您可以使用嵌套列表推导:

a = [['1','2','3'], ['4','5','6']]

a = [[int(v) for v in l] for l in a]
print(a)

输出:

[[1, 2, 3], [4, 5, 6]]

【讨论】:

    【解决方案3】:

    您只能将每行的第一个元素转换为 int,因为您的 for 循环不正确。 您需要一个双循环来获取每个 行和列 的所有元素:

    这应该可行:

    a=[['1','2','3'], ['4','5','6']]
    
    row_number= len(a)
    column_number = len(a[0])
    
    for i in range(row_number):
        for j in range(column_number):
            a[i][j]=int(a[i][j])
    

    【讨论】:

      【解决方案4】:

      使用 numpy array:

      import numpy as np
      
      a = [['1','2','3'], ['4','5','6']]
      output = np.array(a, dtype=np.int)
      

      numpy 实现将比您尝试的更有效。

      【讨论】:

        猜你喜欢
        • 2018-08-08
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        • 2019-01-23
        • 1970-01-01
        • 2022-11-20
        • 2019-02-18
        • 2016-07-09
        相关资源
        最近更新 更多