当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Integer Matrix转String Matrix用法及代码示例


给定一个具有整数值的矩阵,将每个元素转换为字符串。

Input : test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6]]
Output : [['4', '5', '7'], ['10', '8', '3'], ['19', '4', '6']] 
Explanation : All elements of Matrix converted to Strings. 
Input : test_list = [[4, 5, 7], [10, 8, 3]] 
Output : [['4', '5', '7'], ['10', '8', '3']] 
Explanation : All elements of Matrix converted to Strings.

方法#1:使用str() + 列表理解

上述方法的组合可以用来解决这个问题。在此,我们使用 str() 执行转换,并使用列表理解来迭代所有元素。

Python3


# Python3 code to demonstrate working of 
# Convert Integer Matrix to String Matrix
# Using str() + list comprehension
# initializing list
test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
# printing original list
print("The original list : " + str(test_list))
# using str() to convert each element to string 
res = [[str(ele) for ele in sub] for sub in test_list]
# printing result 
print("The data type converted Matrix : " + str(res))
输出
The original list : [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
The data type converted Matrix : [['4', '5', '7'], ['10', '8', '3'], ['19', '4', '6'], ['9', '3', '6']]

方法#2:使用str() + map()

上述函数的组合也可以用来解决这个问题。在此,我们使用map()将字符串转换扩展到所有行元素。

Python3


# Python3 code to demonstrate working of 
# Convert Integer Matrix to String Matrix
# Using str() + map()
# initializing list
test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
# printing original list
print("The original list : " + str(test_list))
# using map() to extend all elements as string  
res = [list(map(str, sub)) for sub in test_list]
# printing result 
print("The data type converted Matrix : " + str(res))
输出
The original list : [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
The data type converted Matrix : [['4', '5', '7'], ['10', '8', '3'], ['19', '4', '6'], ['9', '3', '6']]

所有方法的时间和空间复杂度都是相同的:

时间复杂度:O(n2)
辅助空间:在)

方法#3:使用 numpy.char.mod() 函数。

算法:

  1. 使用 numpy.array() 函数将输入列表转换为 numpy 数组。
  2. 使用 numpy.char.mod() 函数将数组的元素转换为字符串。 %s 格式说明符用于指示字符串转换。
  3. 使用 tolist() 方法将生成的 numpy 数组转换回列表。

Python3


import numpy as np
# initializing list
test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
# printing original list
print("The original list : " + str(test_list))
matrix = np.array(test_list)
res = np.char.mod('%s', matrix).tolist()
# printing result 
print("The data type converted Matrix : " + str(res))

输出

The original list : [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
The data type converted Matrix : [[‘4’, ‘5’, ‘7’], [’10’, ‘8’, ‘3’], [’19’, ‘4’, ‘6’], [‘9’, ‘3’, ‘6’]]

时间复杂度:

该算法的时间复杂度为 O(m * n),其中 m 是输入矩阵的行数,n 是输入矩阵的列数。这是因为我们对矩阵的每个元素进行一次迭代,将其转换为字符串。

空间复杂度:

该算法的空间复杂度也是 O(m * n),因为我们正在创建一个与输入矩阵大小相同的新 numpy 数组,然后将其转换为列表。但是,numpy 数组的内存使用通常比 Python 列表更高效,因此此方法可能比其他使用 Python 列表的方法更节省内存。

迭代字符串转换

我们可以迭代矩阵的每个元素,并使用 str() 函数将其转换为字符串。我们将转换后的元素存储在与原始矩阵大小相同的新矩阵中。

脚步:

  1. 初始化一个与输入矩阵大小相同的空矩阵。
  2. 使用嵌套循环迭代输入矩阵中的每个元素。
  3. 使用str() function将每个元素转换为字符串并将其存储在新矩阵中的相应位置。
  4. 返回新的矩阵。

Python3


def convert_matrix_to_string(test_list):
    rows = len(test_list)
    cols = len(test_list[0])
    string_matrix = [[''] * cols for _ in range(rows)]
    for i in range(rows):
        for j in range(cols):
            string_matrix[i][j] = str(test_list[i][j])
    return string_matrix
test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6]]
string_matrix = convert_matrix_to_string(test_list)
print(string_matrix)
输出
[['4', '5', '7'], ['10', '8', '3'], ['19', '4', '6']]

这种方法的时间复杂度为 O(m*n),其中 m 和 n 是输入矩阵的维度。
这种方法使用的辅助空间也是O(m*n)。

方法5:使用嵌套循环。

分步方法:

  • 初始化一个空列表来存储转换后的字符串矩阵。
  • 使用嵌套循环迭代整数矩阵的元素。
  • 使用 str() 函数将每个元素转换为字符串并将其附加到临时列表中。
  • 转换一行中的所有元素后,将临时列表追加到结果列表中。
  • 对整数矩阵中的所有行重复上述步骤。
  • 打印原始列表和转换后的字符串矩阵。

Python3


# initializing list
test_list = [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
# printing original list
print("The original list : " + str(test_list))
# converting integer matrix to string matrix
str_matrix = []
for row in test_list:
    str_row = []
    for element in row:
        str_row.append(str(element))
    str_matrix.append(str_row)
# printing result
print("The data type converted Matrix : " + str(str_matrix))
输出
The original list : [[4, 5, 7], [10, 8, 3], [19, 4, 6], [9, 3, 6]]
The data type converted Matrix : [['4', '5', '7'], ['10', '8', '3'], ['19', '4', '6'], ['9', '3', '6']]

时间复杂度:O(mn),其中 m 是矩阵的行数,n 是矩阵的列数。
辅助空间:O(mn),用于存储转换后的字符串矩阵。



相关用法


注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python – Convert Integer Matrix to String Matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。