result = dialog.replace(/,\s(\w+)$/, " and $1");
$1
относится к первой группе захвата (\w+)
соответствия.
Вы можете использовать dstack
(по сути, 2d версию zip) и itertools.chain
вместе, чтобы достичь того, что вы хотите.
In [1]: import itertools
In [2]: import numpy as np
In [3]: x = np.array([[1, 2, 3], [4, 5, 6]])
In [4]: y = np.array([[9, 2, 7], [4, 3, 1]])
In [5]: x
Out[5]:
array([[1, 2, 3],
[4, 5, 6]])
In [6]: y
Out[6]:
array([[9, 2, 7],
[4, 3, 1]])
In [7]: for (a,b) in itertools.chain(*np.dstack((x,y))):
...: if a==b:
...: print("Equal")
...: else:
...: print("Not equal")
...:
Not equal
Equal
Not equal
Equal
Not equal
Not equal
Допустим, у вас есть функция с именем my_func(a, b)
, которая принимает два скаляра a
и b
в качестве аргумента и возвращает другой скаляр.
Скажем, ваши два двумерных массива это arr_a
и arr_b
.
Затем выражение:
my_func(arr_a[:size,:size], arr_b[:size,:size])
будет возвращать массив пустых фигур (size,size)
, так что каждый элемент в этом массиве результатов получается путем взятия соответствующих скаляров из arr_a
и arr_b
и передача их в my_func(a,b)
Это работает, если то, что вы делаете внутри my_func()
, соответствует определенным правилам .
Например, my_func()
может быть:
def my_func(a,b):
return np.lcm(a,b)
или может быть:
def my_func(a,b):
return a%b