首页 > 解决方案 > 随机播放两个 python 列表

问题描述

我在想办法打乱两个 python 列表时遇到问题。我有两个不同的列表。

first = [1,2,3]
second = [4,5,6]

我希望我的最终列表是这两个列表的组合,但以特定的方式洗牌。

combined = [1,4,2,5,3,6]

我可以打乱这两个列表并将它们组合起来,但结果将是[2,1,3,6,5,4]但我想要的是[1,4,2,5,3,6].

组合列表应该有第一个列表中的一个项目,然后是第二个列表中的后续项目。

这两个列表甚至可能具有不同的长度。

标签: python

解决方案


first = [1,2,3]
second = [4,5,6,7]

def shuffle(f, s):
    newlist = []
    maxlen = len(f) if len(f) > len(s) else len(s)
    for i in range(maxlen):
        try:
            newlist.append(f[i])
        except IndexError:
            pass
        try:
            newlist.append(s[i])
        except IndexError:
            pass
    return newlist

print(shuffle(first, second))

推荐阅读