我在Python中混合兩個列表,雖然我知道有類似的問題,我需要以某種方式處理它。混合兩個不均勻的列表與填充要求
我有兩個列表,他們可能會或可能不是相同的長度。我需要將這兩者交織在一起,並使用較短列表中的填充符,但填充符必須位於較短列表中的任何值之前。
這是我目前有:
def mix(a, b):
fill='spam'
if len(a) > len(b):
d = len(a) - len(b)
while d:
b.insert(0, fill)
d-=1
if len(a) < len(b):
d = len(b) - len(a)
while d:
a.insert(0, fill)
d-=1
n = zip(a, b)
mixed = [item for sub in n for item in sub]
return mixed
例如:
>>> mix([1, 2 ,3], ['A', 'B', 'C', 'D', 'E', 'F'])
['spam', 'A', 'spam', 'B', 'spam', 'C', 1, 'D', 2, 'E', 3, 'F']
因此,代碼的作品,但它似乎並不像一個很好的辦法做到這一點。有沒有更好的辦法?
儘管此代碼可以回答這個問題,答案會更有益的,如果你能解釋一下什麼是代碼在做什麼,爲什麼這是解決的最好辦法問題。 – MattDMo
當然,我會更新答案。 –