如何将列表中的两个随机数相加?

3
例如: list1 = [1,2,3,4,5,6] 我想要从这个列表中随机获取两个数字,然后把它们加在一起:
例如:3 + 2

3
可以选择两次同一项吗?例如:2+2。 - Felix
没问题,那样可以。 - ban can
5个回答

4

对于唯一选择(无重复抽样),您可以使用random.sample从列表中选择多个随机元素,并使用内置的sum函数。

>>> list1 = [1,2,3,4,5,6]
>>> from random import sample
>>> sum(sample(list1, 2))
7

如果您尝试获取比列表(或更一般的人口)大小更大的样本,则会引发ValueError
>>> sum(sample(list1, len(list1) + 1))
  File "D:\Anaconda\lib\random.py", line 315, in sample
    raise ValueError("Sample larger than population")
ValueError: Sample larger than population

对于非唯一选择(使用替换进行抽样),对于小样本,一个简单的方法就是重复调用所需样本大小的random.choice

>>> from random import choice
>>> sum(choice(list1) for _ in range(2))
6

显然,在有放回抽样的情况下,样本大小可以大于总体大小。
>>> sum(choice(list1) for _ in range(1000))
3527

1

这里有解决方案,但我想告诉你的是,通过问这种问题,你不会在编程方面走得太远。

在提问之前,你需要做一些思考。例如,如果我是你,我会搜索:

在谷歌上"python获取随机数列表" > 如何使用Python从列表中随机选择一个项目?

from random import choice

result = choice(list1) + choice(list1)

祝你好运!


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Delgan
@bancan 是的!看一下更新,它会帮助你的 :) - user3672754
我在谷歌上搜索答案时过于具体了。下次我会尽量不那么具体。感谢您的帮助。 - ban can

1
我猜如果你想要不同的元素,可以使用以下方法:
import random

sum(random.sample(list1, 2))

使用numpy在这里有点过头了,我觉得。 - Delgan
如果两个元素需要不同,那么这将使问题更加简洁。 - Colonel Beauvel
刚才意识到有相同基础的Python,但是@Mitch之前已经回答了,我想。 - Colonel Beauvel

1

要从列表中获取随机数,可以使用

import random
random.choice()

在你的情况下使用:

import random
list1 = [1,2,3,4,5,6]
sum=random.choice(list1)+random.choice(list1)

1

你应该使用以下函数:

from random import choice
a=(random.choice(list1))

'a'现在将会是列表中的随机数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接