我正在尝试从一个列表创建一个新的列表。目标是从listA中随机选取一个名称,并将其添加到listB中的特定位置。但是,名字不应该在listB中重复。你知道吗
这是我的尝试。有时可以,有时我会得到“RecursionError:maximum recursion depth exceeded in comparison”。它可以追溯到yFinder或zFinder。你知道吗
如有任何建议,将不胜感激。谢谢!你知道吗
import random
listA = ["Foo","Spam","Eggs"]
listB = [["A"],["B"],["C"]]
x = random.sample(listA,1)
y = random.sample(listA,1)
z = random.sample(listA,1)
def xFinder():
x
listB[0].append(x)
def yFinder():
y
if y != x:
listB[1].append(y)
else:
yFinder()
def zFinder():
z
if z == y:
zFinder()
elif z == x:
zFinder()
else:
listB[2].append(z)
xFinder()
yFinder()
zFinder()
print(listB)
你得到的是无限递归,因为当你递归调用函数时,你从来没有重新分配过任何变量。所以相同的
if
条件成功,您再次递归。你知道吗但重复选取一个随机元素并不是一个好方法。洗牌
list1
,然后将list1
的每个元素附加到list2
的相应元素。你知道吗相关问题 更多 >
编程相关推荐