随机组合两个列表

2024-05-16 09:25:58 发布

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

嘿,伙计们,我想把这两个列表合并成一本字典。然而,在第二个for循环中,它只是不断地通过该循环,而不是返回到第一个循环。任何帮助都将不胜感激。谢谢大家!

import random
chores = ['dishes','bathroom','vacuum','walk dog']
assign = {}
emails = ['a','b','c','d']

x=0
while x < 4:
    for i in chores:
        randomChore = random.choice(chores)
        chores.remove(randomChore)
    
        for key in emails: 
            assign[key] = randomChore
            x = x + 1

Tags: keyinimport列表for字典randomemails
3条回答

您只需要random.shuffle,它的工作原理如下

import random

chores = ['dishes','bathroom','vacuum','walk dog']
assign = {}
emails = ['a','b','c','d']

random.shuffle(chores)
res = {key:val for key,val in zip(emails,chores)}

在这里,您不需要无用的内部循环和while循环来迭代键:

import random
chores = ['dishes','bathroom','vacuum','walk dog']
assign = {}
emails = ['a','b','c','d']


for i in emails:
  randomChore = random.choice(chores)
  chores.remove(randomChore)
  assign[i] = randomChore

print(assign)

在代码中,需要删除for key in emails: 部分。它会选择随机的琐事,然后循环,添加电子邮件而不选择另一个随机琐事

这是工作代码

import random
chores = ['dishes','bathroom','vacuum','walk dog']
assign = {}
emails = ['a','b','c','d']

x = 0
for i in range(0, len(chores)):
    randomChore = random.choice(chores)
    chores.remove(randomChore)

    assign[emails[x]] = randomChore
    x = x + 1
    
print(assign)

相关问题 更多 >