擅长:python、mysql、java
<pre><code># If you must have original data as lists of lists:
def flat(lst):
ret = []
for x in lst:
if hasattr(x, '__iter__'):
ret += flat(x)
else:
ret.append(x)
return ret
List1 = [['_', '_', '_'], ['_', '_', '_'], ['_','_','_']]
List2 = [['Test', 'Word', 'Sudo'], ['Fu', 'Lu', 'Shou'], ['Ham', 'Spam', 'Eggs']]
List3 = [3, 5, 7,]
lst1 = flat(List1)
lst2 = flat(List2)
# Now given flat lists, you can just do this:
def splitby(x, n=3):
i = iter(x)
while True:
yield [next(i) for _ in range(n)]
for i in List3:
lst1[i] = lst2[i]
print list(splitby(lst1))
</code></pre>