【问题标题】:Is there a python function for assigning values to several elements in a list?是否有用于为列表中的多个元素分配值的 python 函数?
【发布时间】:2021-08-23 08:12:29
【问题描述】:

我使用下面显示的代码来创建列表列表。 代码:

num = 782
sol=4
pop_size= [sol, num]
initial_population_1 = np.random.uniform(low=0.0, high=0.0, size=pop_size)

列表列表如下:

[[0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]]

如何将大于 0 但小于 10 的五个值随机分配给列表中每个列表中的五个元素? 非常感谢!

【问题讨论】:

  • 您是否只想将 5 个随机数分配给生成列表中的任意 5 个项目,其余的为零?
  • 是的,这就是我要找的。​​span>
  • 我现在将发布答案并检查是否是您想要的..
  • @GhostOps 你要求OP检查你的答案是三次,请耐心一点。
  • @gboffi 是的,我会的。谢谢gboffi

标签: python list numpy


【解决方案1】:

所以,您有一个列表列表,具体来说是一个包含 4 个列表的列表,每个列表包含 782 个元素,全部为 0.0,并且您想将 5 个元素随机设置为 1.0。

我想提一下,当您使用 Numpy 时,np.zeros(shape) 为您提供了一个零填充数组,但无论如何……

根据您的问题,不清楚是否要避免使用两次相同的位置,但我们假设您要为每行中的 5 个条目分配一个随机值

for row in initial_population_1:
    locations_used_in_this_row = 0
    while locations_used_in_this_row != 5:
        column = np.random.randint(num)
        if row[column] == 0.0:
            row[column] = np.random.rand()*10
            locations_used_in_this_row += 1

【讨论】:

  • 非常感谢!
  • @Zzyy 看看外循环:不是对所有行进行操作,而是对剩余的行进行操作,像这样for row in initial_population_1[1:]:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多