擅长:python、mysql、java
<p>我认为以下几点可以满足您的要求:</p>
<pre><code>from itertools import izip_longest # 'zip_longest' in Python 3.x
from random import choice
# Step 1
outputArray = list(map(list, izip_longest(*inputArray)))
# Step 2
for index, arr in enumerate(outputArray):
if any(item is None for item in arr):
valid = [item for item in arr if item is not None]
outputArray[index] = [choice(valid) if item is None else item
for item in arr]
</code></pre>
<p>这有两个步骤:</p>
<ol>
<li>将<code>inputArray</code>的所有子列表合并到最长子数组的长度,填充<code>None</code>:<code>[[0, 2, 9], [1, 3, 6], [2, 5, 1], [3, 7, None], [4, 8, None]]</code>;并且</li>
<li>通过<code>outputArray</code>查找任何包含<code>None</code>的子列表,并用子列表中其他非<code>None</code>项的随机选择替换<code>None</code>。你知道吗</li>
</ol>
<p>输出示例:</p>
<pre><code>[[0, 2, 9], [1, 3, 6], [2, 5, 1], [3, 7, 3], [4, 8, 8]]
</code></pre>