给定一个具有整数值的矩阵,将每个元素转换为字符串。
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() 函数。
算法:
- 使用 numpy.array() 函数将输入列表转换为 numpy 数组。
- 使用 numpy.char.mod() 函数将数组的元素转换为字符串。 %s 格式说明符用于指示字符串转换。
- 使用 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() 函数将其转换为字符串。我们将转换后的元素存储在与原始矩阵大小相同的新矩阵中。
脚步:
- 初始化一个与输入矩阵大小相同的空矩阵。
- 使用嵌套循环迭代输入矩阵中的每个元素。
- 使用str() function将每个元素转换为字符串并将其存储在新矩阵中的相应位置。
- 返回新的矩阵。
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),用于存储转换后的字符串矩阵。
相关用法
- Python Integer和Float的区别用法及代码示例
- Python InteractiveConsole runcode()用法及代码示例
- Python InteractiveInterpreter runsource()用法及代码示例
- Python InteractiveInterpreter runcode()用法及代码示例
- Python Int转Bytes用法及代码示例
- Python IncrementalEncoder encode()用法及代码示例
- Python Index Dictionary转List用法及代码示例
- Python Inspect用法及代码示例
- Python Itertools.chain()用法及代码示例
- Python Itertools.compress()用法及代码示例
- Python Itertools.cycle()用法及代码示例
- Python Itertools.dropwhile()用法及代码示例
- Python Itertools.islice()用法及代码示例
- Python Itertools.Permutations()用法及代码示例
- Python Itertools.starmap()用法及代码示例
- Python Itertools.takewhile()用法及代码示例
- Python Itertools.Product()用法及代码示例
- Python Itertools.count()用法及代码示例
- Python Itertools.accumulate()用法及代码示例
- Python Itertools.filterfalse()用法及代码示例
- Python Itertools.tee()用法及代码示例
- Python Itertools.Combinations_with_replacement()用法及代码示例
- Python Itertools.zip_longest()用法及代码示例
- Python Image转PDF用法及代码示例
- Python Import用法及代码示例
注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python – Convert Integer Matrix to String Matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。