python - 正确的输出,但对于结果中的最后一个元素,但我需要完整迭代的所有结果
问题描述
循环使用公式在字典中运行正常,但仅给出公式成立的最终元素的结果。我需要完整的清单。
我在文本文件中的结果是thulium-167 60.5011675274
.
但这是最后一个元素。它应该以
actinium-226 6.478791841364163
, 然后
americium-240 76.84481748402972
, ..., 开始,直到
thulium-167 60.5011675274
。
代码如下:
import math
myList=[]
with open("data_2.txt") as f:
for line in f:
myList.append(tuple(line.rstrip().split()))
dic = {}
for index, ele in enumerate(myList):
key=index+1
val_1=str(ele[0])
val_2=float(ele[1])
val_3=float(ele[2])
dic.update({key: (ele[0],val_2,val_3)})
for i in range(len(dic)):
power= 5/(val_2)
P=pow(0.5,power)
cal_grams=val_3*P
if cal_grams<100:
outfile = open("Element_Shortage_List.txt", "w")
outfile.write(str(val_1)+ " "+str(cal_grams)+"\n")
outfile.close()
当总共应该有 23 个(从循环前的 36 个)时,为什么它只丢掉一个最终正确的结果?
解决方案
每次以"w"
(写入)模式打开文件时,都会从头开始;如果您使用"a"
(附加)模式(这是@JeffUK 所提倡的),它将添加到最后。
推荐阅读
- javascript - 如何将 Json 转换为 html 表单并回发?
- canvas - 如何检测鼠标是否越过fabricjs中的多边形线?
- javascript - 如何从 ReactJS 中的函数调用渲染 stateHook 结果
- python - 如何更改打印列表的格式
- gitpython - 如何知道 git 存储库是否被 GitPython 修改?
- javascript - 使用具有离线持久性的 Firestore - 桌面(网络)
- sql - 防止 DB2 中的一组行出现重复
- sympy - Sympy——定义一个合适的域
- kubernetes - istio 出口:从 kubernetes 集群到 mariadb 的 mtls 连接
- visual-studio - .razor 文件中的 Blazor Intellisense 在发布后停止工作