#!/usr/bin/python
a=[[1,2,3],[4,5,6],[7,0,0],[10,9,12]]
#a=[[10,7,4,1],[17,0,5,2],[12,9,6,3]]
num_of_rows=len(a)
num_of_col=len(a[0])
#### Using dictionary here but it is a bug because dict replacing the value if same key found :-)
def matrix_wd_zero():
m_dict={}
print "Given Matrix : ", a
for i in range(num_of_rows):
for j in range(num_of_col):
m_value=a[i][j]
if m_value == 0:
m_dict[i]=j
for i,j in m_dict.items():
for k in range(num_of_col):
a[i][k]=0
for p in range(num_of_rows):
a[p][j]=0
print "Result Matrix : ", a
############ Efficient and correct Function
def matrix_wd_zero2():
print "Given Matrix : ", a
for i in range(num_of_rows):
for j in range(num_of_col):
if a[i][j]==0:
for k in range(num_of_col):
a[i][k]=100
for p in range(num_of_rows):
a[p][j]=100
for i in range(num_of_rows):
for j in range(num_of_col):
if a[i][j]==100:
a[i][j]=0
print "Result Matrix : ", a
if __name__=='__main__':
#matrix_wd_zero()
matrix_wd_zero2()
a=[[1,2,3],[4,5,6],[7,0,0],[10,9,12]]
#a=[[10,7,4,1],[17,0,5,2],[12,9,6,3]]
num_of_rows=len(a)
num_of_col=len(a[0])
#### Using dictionary here but it is a bug because dict replacing the value if same key found :-)
def matrix_wd_zero():
m_dict={}
print "Given Matrix : ", a
for i in range(num_of_rows):
for j in range(num_of_col):
m_value=a[i][j]
if m_value == 0:
m_dict[i]=j
for i,j in m_dict.items():
for k in range(num_of_col):
a[i][k]=0
for p in range(num_of_rows):
a[p][j]=0
print "Result Matrix : ", a
############ Efficient and correct Function
def matrix_wd_zero2():
print "Given Matrix : ", a
for i in range(num_of_rows):
for j in range(num_of_col):
if a[i][j]==0:
for k in range(num_of_col):
a[i][k]=100
for p in range(num_of_rows):
a[p][j]=100
for i in range(num_of_rows):
for j in range(num_of_col):
if a[i][j]==100:
a[i][j]=0
print "Result Matrix : ", a
if __name__=='__main__':
#matrix_wd_zero()
matrix_wd_zero2()
No comments:
Post a Comment