【发布时间】:2018-06-09 07:51:07
【问题描述】:
我想创建两个列表(“lstA”、“lstB”),每个列表包含 50 个随机数。然后我想比较这两个列表以及我想要放入第三个列表(“lstOvrlp”)的任何重叠。然后我想取第三个列表的长度并将其放入第四个列表(“lstC”)中。
接下来我希望这个基本程序循环 10 次(稍后我将为此部分添加用户输入)。
这是我到目前为止的代码:
def main():
import random
lstA = []
lstB = []
lstC = []
lstA = random.sample(range(1, 101), 50)
lstB = random.sample(range(1, 101), 50)
lstOvrlp = set(lstA) & set(lstB)
while len(lstC) <= 10:
print("This is list A:", lstA)
print("\n")
print("This is list B:", lstB)
print("\n")
print("This is the overlap between the two lists:", lstOvrlp)
numinC = len(lstOvrlp)
print("Number in common: ", numinC)
print("\n")
lstC.append(numinC)
print(lstC)
main()
问题在于,程序不是每次通过循环都吐出随机数,而是一遍又一遍地重复使用相同的数字,从而导致相同的重叠数,从而导致“lstC”中的长度相同。也许 Random 中还有一些我不知道的其他功能,但我找不到它。
我希望每次程序循环时在“lstA”和“lstB”中有一批新的数字,以便“lstC”以不同的条目结束。我正在尝试使用数据进行一些练习,最终我将对这些信息进行一些简单的统计分析,例如平均值等等。
虽然我无法指出此处存在的错误,但我可以保证其中存在大量错误,因此请耐心等待。
谢谢
【问题讨论】:
-
您应该将
random.sample一代放在while循环中。否则,您生成它们(一次)并 then 循环,但不会再次生成随机样本 -
如果您不更改它们,您希望它们如何更改?
-
你应该在循环中生成这些样本 - lstA 和 lstB :)
标签: python list random while-loop