jam*_*sel 0 python function while-loop
def transpose(matrix):
n=0
while n < (len(matrix)):
li = []
for sets in matrix:
li.append(sets[0])
n += 1
print(len(matrix))
return li
transpose([[1,2,3],[4,5,6],[7,8,9]])
Run Code Online (Sandbox Code Playgroud)
目前返回[1,4,7]通缉结果[[1,4,7],[2,5,8],[3,6,9]]
你的内容中有一个return语句,所以函数一旦到达那个点就会返回.你应该让你的回归与时间相同:
def transpose(matrix):
n = 0
li = []
while n < (len(matrix)):
...
return li
Run Code Online (Sandbox Code Playgroud)
您还可以n使用迭代的for循环替换while循环和计数器,range(len(matrix))以便可以安全地丢弃n,然后li在循环外部移动初始化:
def transpose(matrix):
li = []
for i in range(len(matrix)):
inner_li = []
for sets in matrix:
inner_li.append(sets[i])
li.append(inner_li)
return li
Run Code Online (Sandbox Code Playgroud)
我建议您采用流行的配方来转置矩阵,以使代码更清晰:
def transpose(matrix):
return list(zip(*matrix))
Run Code Online (Sandbox Code Playgroud)
>>> transpose([[1,2,3],[4,5,6],[7,8,9]])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |