需要帮助我在压缩两个列表列表(矩阵)时迷路了。
格式完全相同的矩阵,我希望它们在同一位置的每个元素的元组对中压缩。
例如,
m1 = [['A', 'B', 'C'],
['D', 'E'],
['F', 'G']]
m2 = [['s1', 's2', 's3'],
['s4', 's5'],
['s1', 's3']]
我期望得到的是格式相同:
z = [[('A', 's1'), ('B', 's2'), ('C', 's3')],
[('D', 's4'), ('E', 's5')],
[('F', 's1'), ('G', 's3')]]
我可以编写一个函数来执行此操作,但我正在寻找一种在Python中执行此操作的优雅方法。
答案 0 :(得分:6)
if ($this->Business->save($this->request->data)) {
(isset($this->request->data["Business"]["referer"]) && !empty($this->request->data["Business"]["referer"]) ? $this->redirect($this->request->data["Business"]["referer"]) : $this->redirect(array("action" => "index"));
}
和zip()
:
zip()
zip()
function将输入序列的每个元素配对; [zip(*paired) for paired in zip(m1, m2)]
m1[0]
,m2[0]
m1[1]
等,然后对于每个对,然后再次将元素配对(m2[1]
与{{1} {},m1[0][0]
与m2[0][0]
等。)
如果这是Python 3,则必须在m1[0][1]
调用中包含其中一个:
m2[0][1]
演示:
list()