Python 随机组合两个列表
嘿,伙计们,我想把这两个列表合并成一本字典。然而,在第二个for循环中,它只是不断地通过该循环,而不是返回到第一个循环。任何帮助都将不胜感激。谢谢大家!Python 随机组合两个列表,python,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 = rando
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
随机导入
家务活=[“盘子”、“浴室”、“吸尘器”、“遛狗”]
赋值={}
电子邮件=['a'、'b'、'c'、'd']
x=0
当x<4时:
对于我来说,家务活:
randomChore=random.choice(杂务)
杂务。删除(随机杂务)
对于输入电子邮件:
分配[键]=随机杂务
x=x+1
您只需要随机。随机播放
,它的工作原理如下
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)}
在您的代码中,需要删除用于键入电子邮件的
:
部分。它会选择随机的琐事,然后循环,添加电子邮件而不选择另一个随机琐事
这是工作代码
随机导入
家务活=[“盘子”、“浴室”、“吸尘器”、“遛狗”]
赋值={}
电子邮件=['a'、'b'、'c'、'd']
x=0
对于范围(0,len(杂务))中的i:
randomChore=random.choice(杂务)
杂务。删除(随机杂务)
分配[电子邮件[x]]=randomChore
x=x+1
打印(分配)
在这里,您不需要无用的内部循环和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)
为什么对这个答案投反对票?这工作正常。我的ikr也被否决了。。。。混乱我不知道这是否值得一次否决票,但很糟糕的是,为了做到这一点,你需要销毁输入杂务。此外,在循环中删除数组中的项也是低效的——实际上,您已经使一件简单的事情需要O(n²)的复杂性。洗牌数组更有意义。因此,如果我理解正确,如果你有两个for循环,它将继续在第二个循环上迭代,然后返回第一个循环?这一个也有效(+1)不确定是谁投了反对票,但你可以做一点压缩。我建议你尝试在每个列表中只包含三个项目。还要解释为什么需要外部
而循环?简化代码的好主意,我试图指出他们哪里弄错了。我将编辑它。你做错的是从你正在迭代的列表中删除项目。这从来都不是个好主意。谢谢你!!这很简单,我坚持了这么久。