<p>您可以修改<code>zip_longest</code>的纯Python版本(给定<a href="https://docs.python.org/3/library/itertools.html?#itertools.zip_longest" rel="nofollow">documentation</a>),并创建一个版本来执行您想要的操作:</p>
<pre><code>from itertools import chain, repeat
class ZipExhausted(Exception):
pass
def zip_longest(*args, **kwds):
# zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-
fillvalue = kwds.get('fillvalue')
counter = len(args) - 1
def sentinel():
nonlocal counter
if not counter:
raise ZipExhausted
counter -= 1
yield fillvalue
fillers = repeat(fillvalue)
iterators = [chain(it, sentinel(), fillers) for it in args]
try:
while iterators:
res = []
for it in iterators:
value = next(it)
if value != fillvalue:
res.append(value)
yield tuple(res)
except ZipExhausted:
pass
pData = [['-300.2', '600.5'],['150.12', '280.7'],['19.19', '286.56']]
rData = []
sData = []
translationData = list(zip_longest(pData, rData, sData))
print(translationData)
</code></pre>
<p>输出:</p>
<pre class="lang-none prettyprint-override"><code>[(['-300.2', '600.5'],), (['150.12', '280.7'],), (['19.19', '286.56'],)]
</code></pre>