当前位置: 首页 > 知识库问答 >
问题:

如何在Python中处理Random.Sample中的ValueError?

宇文良骏
2023-03-14

我在写一个背包问题的代码。有一个有重量容量的背包,你选择一个特定的项目组合,以找到最好的解决方案。然而,我试图随机生成可能的解决方案。因此,我的代码将选择随机数量的随机项(生成一个随机大小的列表),并html" target="_blank">测试解决方案是否可行(小于容量)或不可行(大于容量)。但是我对random.sample()有问题。为了得到一个随机大小的列表,我将k设置为leng(一个随机整数),总体是从给定的项目范围中挑选的项目的随机列表。但我知道,如果冷大于人口,那么就有一个valueError。我想使用random.sample(),这样我就可以有一个唯一数字的列表,但我需要以某种方式处理ValueError。除了valueError:外,我试过做try:但我不确定如何真正实现它。这是我目前所掌握的:

def genSoln(cap, items)
    g = input("Would you like to generate random potential solutions? [y/n] ")
    if g == 'y':
        gen = int(input("Number of times to generate/check random potential solutions? "))
        totalwt = 0
        totalval = 0
        for i in range(1,gen+1):
            try:
                pop = range(1,items)
                leng = random.randint(1,8)
                ran = random.sample(pop, leng)
            except ValueError:
                pass
            for i in ran:
                totalwt += int(wts[i])
                totalval += int(vals[i])
                if i == len(ran):
                    if totalwt < int(cap):
                        print("Items picked: ", ran)
                        print("Feasible: ", "Total Wt = ", totalwt, "Total Val = ", totalval)
                    else:
                        print("Items picked: ", ran)
                        print("Infeasible: ", "Total Wt = ", totalwt, "Total Val = ", totalval)
                    totalwt = 0
                    totalval = 0

共有1个答案

景英杰
2023-03-14

Thsi应该这么做。

leng = random.randint(1, items)
 类似资料:
  • 问题内容: 我正在尝试从网站获取一些数据。然而,这又使我回来了。我试图获取的数据是大量的嵌套链接。我在线进行了一些研究,发现这可能是由于服务器错误(在达到预期大小之前完成了分块的传输编码)。我还在此链接上找到了以上解决方法 但是,我不确定如何在我的案例中使用它。以下是我正在处理的代码 请帮助我。谢谢 问题答案: 您包含在问题中的链接只是执行urllib的read()函数的包装程序,该函数可以为您捕

  • 问题内容: 背景 我刚刚将Pandas从0.11升级到0.13.0rc1。现在,该应用程序弹出许多新警告。其中之一是这样的: 我想知道到底是什么意思?我需要改变什么吗? 如果我坚持使用该如何警告 产生错误的函数 更多错误讯息 问题答案: 在被创造的标志可能造成混淆的“链接”的任务,比如下面这并不总是如预期的工作,特别是当第一选择返回一个副本。[ 有关背景讨论,请参见GH5390和GH5597。]

  • 本文向大家介绍基于Python中random.sample()的替代方案,包括了基于Python中random.sample()的替代方案的使用技巧和注意事项,需要的朋友参考一下 python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如: numpy random模块中的choice方法可以有效提升随机

  • 这个问题要求解释在各种语言中如何在后台实现异常处理,但没有收到Python的任何回应。 我对Python特别感兴趣,因为Python通过EAFP原则“鼓励”异常抛出和捕捉。 我从其他SO答案中了解到,如果预计很少引发异常,try/catch块比if/etc语句更便宜,并且调用深度很重要,因为填充stacktrac很昂贵。这可能主要适用于所有编程语言。 python的特殊之处在于EAFP原则的高优先

  • 本文向大家介绍如何在Java中处理Selenium中的代理?,包括了如何在Java中处理Selenium中的代理?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助PROXY类在Java中使用Selenium处理代理。

  • 问题内容: 我想要一个文本区域,可以处理按 Tab 键的情况。 在默认情况下,如果您按 Tab 键,则焦点将离开文本区域。但是,当用户想要在文本区域中输入 Tab 键时会怎样呢? 我可以捕捉到此事件并将焦点返回到文本区域并将标签添加到 当前 光标位置吗? 问题答案: