【发布时间】:2011-12-24 16:51:45
【问题描述】:
我正在研究一个化学程序,该程序需要列出所有元素及其对应的原子质量单位,大致如下:
Elements = [(H,1),(He,2)...(C,12)]
所有元素及其 AMU 都是从一个文件中读取的,其中每一行都写成“C 12”。我需要从文件中读取信息,将每一行附加到自己的元组中,然后将元组附加到列表中。这是我尝试过的一些代码,但没有成功。
class chemistry:
def readAMU():
infil = open("AtomAMU.txt", "r")
line = infil.readline()
Atoms = list()
Element = ()
while line !="":
line = line.rstrip("\n")
parts = line.split(" ");
element = parts[0]
AMU = parts[1]
element.append(Element)
AMU.append(Element)
Element.append(Atoms)
我在正确的轨道上吗?如果不是,我将如何将两个值附加到一个元组中,分配每个值和索引,然后将其附加到一个列表中?
【问题讨论】:
-
您可以通过选择代码并单击“{ }”图标来格式化代码。
-
元组是不可变的。你不能
append()给他们任何东西,你必须在创建它们时完全指定它们的内容。 -
@rmmh 刚刚解决了这个问题; C 语言已经够糟糕了,无法像普通文本一样阅读,但没有缩进的 Python 是受虐狂。
-
你真的只是让代码比它需要的复杂得多。您不需要类或定义 - 除非您计划提取更多数据或重用定义。您也不需要创建这么多更小的数组。我建议查看给出的解决方案,并真正尝试了解所做的工作。