gpt4 book ai didi

python - 从列表中创建随机对

转载 作者:太空狗 更新时间:2023-10-30 02:10:37 26 4
gpt4 key购买 nike

我正在尝试创建一个程序来打印列表中的成对元素。我需要创建一个字典(一开始是空的),我可以在其中存储值,循环遍历列表以形成一对并确保没有重复项。

当我在列表中循环时,我需要得到一个随机数,我可以用它来删除一个元素。使用 pop 方法从列表中删除随机选择的元素,将元素存储到变量中,比如 element1。重复创建 element2。

通过将 element1 作为键插入到 element1 到 element2对字典,并将其值设置为 element2,也就是说,如果我们调用pairs[element1] 之后它应该给我们 element2 的值。

使用字典的 items() 和 keys() 方法打印结果。

要注意的是,我们唯一允许的函数是 random 模块中的 random.randrange() :(

例子是这样的:

list = ["Mother", "Father", "Aunt", "Uncle", "Brother", "Sister" ]

程序的示例运行,这将创建 3 对,因为列表中有 6 个元素。

Pair 1: Mother and Aunt
Pair 2: Uncle and Sister
Pair 3: Brother and Father

这是我现在的程序:

family = ["Mother", "Father", "Aunt", "Uncle", "Brother", "Sister" ]

for x in family:


pairs = {}

我如何改进/添加此代码?

最佳答案

使用 random.randrange 从列表中选择(和删除)随机元素很容易:

def pop_random(lst):
idx = random.randrange(0, len(lst))
return lst.pop(idx)

现在,假设列表有偶数个元素,我们可以很容易地构建对:

pairs = []
while lst:
rand1 = pop_random(lst)
rand2 = pop_random(lst)
pair = rand1, rand2
pairs.append(pair)

缺少 2 个步骤,我将作为练习留给您:

  1. 在开始之前确保列表是唯一的
  2. 确保唯一列表的元素数量为偶数(并找出如果不是偶数该怎么做......)

关于python - 从列表中创建随机对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28748520/

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