【发布时间】:2020-03-24 11:20:00
【问题描述】:
这是我正在编写的一些代码的简化版本,是一种玩具模型,因此我可以只专注于让我感到困扰的部分。这就是为什么我定义了一个函数来查找最小值,而不是简单地使用 numpy 命令。在我的正确代码中,需要一个函数,因为它不像使用预先存在的 numpy 函数那么简单。
我想要做的是在最小点将我的列表分成 2 个列表 - 所以考虑到我在这里的情况,理想情况下我会得到 [15, 62, 49, 49, 4] and [100, 71, 16, 70, 62] 。但是,我不明白这一点。我得到了存储在node1中的所有点,而node2中什么也没有。我真的不知道为什么 - 正如你所看到的,我尝试了两种执行 for 循环的方法。我完全知道代码的想法,循环应该遍历列表的索引,然后将这些索引的值存储在新列表 node1 和 node2 中。我做错了什么?
#generate random list of numbers
import random
randomlist = [] #==profile_coarse
for i in range(0,10):
n = random.randint(1,100)
randomlist.append(n)
print(randomlist)
#define a function to find minimum
def get_min(list):
mini=np.min(randomlist)
return mini
node1=[]
node2=[]
for i in enumerate(randomlist):
if i<=get_min(randomlist):
node1.append(randomlist[i])
else:
node1.append(randomlist[i])
#OR
for i in range(0,len(randomlist)):
if i<get_min(randomlist):
node1.append(randomlist[i])
else:
node1.append(randomlist[i])
print(node1,node2)
产生
[15, 62, 49, 49, 4, 100, 71, 16, 70, 62] []
【问题讨论】: