从数组中生成并采样的列表理解,该数组又取决于另一个数组中的值(依赖于索引)

2024-04-19 09:05:55 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以执行列表理解,其中列表中的每一项都是通过随机抽样从一个列表本身生成的,而这个列表本身又是根据特定索引中其他两个列表的值生成的?我意识到可读性会受到影响,但我很好奇我是否能通过列表理解做到以下几点:

def goat_door(guess, correct):
    doorlist = []
    for i in range(len(guess)):
        items = [1,2,3]
        if(guess[i] in items):
            items.remove(guess[i])
        if(correct[i] in items):
            items.remove(correct[i])
        doorlist.append(random.choice(items))
    return doorlist

(著名的三门猜谜游戏问题)。你知道吗

输入列表guess表示关于奖品门的n个猜测(独立),correct是这n个猜测的实际奖品门。功能门选择的门既不是猜测门,也不是价格门。。你知道吗

我是Python的新手,所以我正在努力推动列表的理解。这可以用一个或两个列表理解来完成吗?你知道吗


Tags: 方法in列表ifdefitemsremove可读性
1条回答
网友
1楼 · 发布于 2024-04-19 09:05:55
def goat_door(guess, correct):
    return [random.choice(list({1,2,3} - set(gc)))
            for gc in zip(guess, correct)]

或者

def goat_door(guess, correct):
    return [random.choice(list({1,2,3} - {g,c}))
            for g,c in zip(guess, correct)]

相关问题 更多 >