Для развлечения & amp; полезность (в основном для googling ppl):
f = lambda i: [int(j) if re.match(r"[0-9]+", j) else j for j in re.findall(r"([0-9]+|[^0-9]+)", i)]
cmpg = lambda x, y: cmp(f(x), f(y))
используется как sorted(list, cmp=cmpg)
. Кроме того, регулярные выражения могут быть предварительно скомпилированы (редко необходимо, хотя, фактически, с кэшированием re-модуля). И, может быть (легко) изменено, например, включить отрицательные значения (добавьте -?
в num regex, возможно) и / или использовать значения float.
Это может быть не очень эффективно, но даже при этом это очень полезно.
И, uhm, его можно использовать как key = для sorted () тоже.
Для начинающих в Python, обратите особое внимание на отступ, потому что это основа синтаксиса Python, а не разделитель конца, как в большинстве языков / скриптов.
Вы не создаете массив для суммы и не добавляете его в правый цикл. Попробуйте это:
def matrix_addition(a, b):
# your code here
res = []
for i in range(len(a)):
sum = []
for j in range(len(b)):
sum.append([i][j] + b[i][j])
res.append(sum)
return res