2013-04-15 61 views
0

我需要將矩陣的元素從str轉換爲int(在我從文件中讀取它們之後)。 我不想使用任何外部庫。在Python中將矩陣元素從str轉換爲int

這是我製作的,到目前爲止,它的工作,但我不喜歡它(不是很符合Python):

def str2int(matrix): 
    n = 1 
    m = 1 
    if type(matrix) is ListType: 
     n = len(matrix) 
     if type(matrix[0]) is ListType: 
      m = len(matrix[0]) 
    new_matrix = [] 
    i = 0 
    while i < n: 
     new_matrix.append([]) 
     j = 0 
     while j < m: 
      new_matrix[i].append(int(matrix[i][j])) 
      j += 1 
     i += 1 
    return new_matrix 

更好的想法?

謝謝。

+0

什麼是'ListType'? –

+1

類型檢查是一種在Python中執行某些事情的不好方法,如果要打字檢查,至少在type(x)上使用'isinstance()'是SomeType'。同樣,按指數迭代也是一個非常糟糕的主意。 –

回答

4

使用list comprehension

return [[int(i) for i in row] for row in matrix] 
+0

+1,以及一個鬼鬼祟祟的編輯添加鏈接到一些解釋。 –

+1

也可以使用'map'作爲內部理解:'return [map(int,row)for matrix in matrix]' – lxop

+0

這就是我想要的。非常感謝(也爲本教程)。 – Mihai