gpt4 book ai didi

python - 随机选择两个列表的某些索引创建两个新列表

转载 作者:行者123 更新时间:2023-12-05 08:26:39 24 4
gpt4 key购买 nike

假设我有两个列表:

A = ['cat', 'dog', 'cow', 'pig', 'monkey']
B = ['Felix', 'Fido', 'Moo', 'Trump', 'King Kong']

现在我想通过选择 3 个随机索引(无替换)来创建 lists Alist B,同时保持 A< 的值之间的关系B

例如,

随机选择的索引:4, 0, 3

因此,

A = ['monkey', 'cat', 'pig']
B = ['King Kong', 'Felix', 'Trump']

有没有一种方法可以在不编写迭代 3 次以选择随机索引的 for 循环的情况下执行此操作?

最佳答案

您可以 zip列表,然后选择 3 个随机对 random.sample ,最后再次将这些对拆分为单独的列表:

import random

pairs = list(zip(A, B)) # make pairs out of the two lists
pairs = random.sample(pairs, 3) # pick 3 random pairs
A1, B1 = zip(*pairs) # separate the pairs

这是逐步发生的事情:

>>> list(zip(A, B))
[('cat', 'Felix'), ('dog', 'Fido'), ('cow', 'Moo'), ('pig', 'Trump'), ('monkey', 'King Kong')]
>>> random.sample(_, 3)
[('monkey', 'King Kong'), ('pig', 'Trump'), ('dog', 'Fido')]
>>> list(zip(*_))
[('monkey', 'pig', 'dog'), ('King Kong', 'Trump', 'Fido')]

关于python - 随机选择两个列表的某些索引创建两个新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52470735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com