嘿,伙计们,这太令人困惑了。。。在
我试图通过以下方法找到数组的最小值:
for xpre in range(100): #used pre because I am using vapor pressures with some x molarity
xvalue=xarray[xpre]
for ppre in range(100): #same as xpre but vapor pressures for pure water, p
pvalue=parray[p]
d=math.fabs(xvalue-pvalue) #d represents the difference(due to vapor pressure lowering, a phenomenon in chemistry)
darray.append(d) #darray stores the differences
mini=min(darray) #mini is the minimum value in darray
darr=[] #this is to make way for a new set of floats
所有的数组(xarr、parr、darr)都已经定义好了。他们每人有100个浮子
所以我的问题是如何找到pvap和xvap@which min(darr)被找到?在
编辑 已经更改了一些变量名并添加了变量描述,对不起,伙计们
编辑:这不能回答操作员的问题:
从右到左:
zip接受xpre和ppre,并生成一个第1个、第2个。。。元素分别如下:
^{pr2}$枚举枚举通过从0向上计数来添加索引:
这将解压每个嵌套元组:
i是enumerate生成的索引,a和b是xarr和parr的元素。在
这将构建一个由差异和索引组成的元组:
在min(…)之间的整个过程是一个生成器表达式。然后min会找到这些值中的最小值,赋值将它们解包:
有几件事:
darr
作为list
,而是使用dict
并将dvp
值存储为键,xindex
和pindex
变量作为值这是密码
说明
enumerate
函数允许您迭代列表并接收项的索引。它是您的range(100)
的替代品。注意,我没有在索引xpre
,ppre
处获取值的行,这是因为enumerate
函数将索引和值都作为元组提供给我。在然而,最重要的变化是,您的
^{pr2}$darr
不是这样的列表:它现在是这样一本词典:
现在,我不再仅仅存储}中。现在,如果我想知道什么,比如说,哪个}值产生了43的
dvp
值,而是将索引存储到生成这些dvp
值的x
和{x
和{dvp
值?我会这样做:现在,}是有问题的值。在
x
和{注意我个人会存储产生特定
dvp
的值,而不是这些值的索引。但你要的是指数,所以我给了你答案。我假设您有理由这样处理索引,但在Python中,当您以Python方式编程时,通常不会发现自己以这种方式处理索引。这是一种非常C的做事方式。在相关问题 更多 >
编程相关推荐