【问题标题】:How to create an array that is filled with elements randomly selected from another array [duplicate]如何创建一个填充有从另一个数组中随机选择的元素的数组[重复]
【发布时间】:2020-09-15 19:24:03
【问题描述】:

基本上说我有这个数组 d = [1,6,7,4,9] 我想随机获取该内容并使用 for 循环将其填充到另一个数组中一定次数并打印结果 所以,

d= [1,6,7,4,9]

n = 100

s = []

for i in range(n)

   s[i] = random.choice(d)

print(s)

但是,我收到列表分配超出范围的错误,我只是想知道让此代码运行的最佳方法是什么。我的主要问题是将随机选择附加到新数组中。

【问题讨论】:

    标签: python arrays random


    【解决方案1】:

    试试s.append(random.choice(d)),而不是使用s[i] = random.choice(d)。您收到错误的原因是因为您试图索引列表中尚不存在的部分。

    【讨论】:

    • 那么 append 会增加数组吗?
    • @WeepingWillow 是的。它将元素添加到列表的末尾。
    【解决方案2】:
    s = [random.choice(d) for _ in range(n)]
    

    当您使用索引时,Python 不会自动增长数组。

    或者,你可以从

    开始
    s = [None] * n
    

    这样s 的大小以n 开头,然后使用您的其余代码。

    【讨论】:

    • 好的,所以我必须创建一个该大小的空数组,然后我可以填充数组?好的,这很有意义,因为这个错误真的让我困惑了一秒钟。
    • 正确。或者使用append,它确实会增加数组,如另一个答案中给出的那样。对于构建列表的简单案例,列表理解通常更容易理解且更短。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2014-07-23
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多