擅长:python、mysql、java
<p>这里有一个行列表。每行可以包含多个项目,以分号分隔。每个项目(或记录)由元素名称、连字符和粒子计数组成</p>
<p>这里不需要同时拆分不同的分隔符;相反,您可以使用分号拆分各个项目,然后根据连字符将每个项目拆分为字典所需的键/值对</p>
<pre><code>for line in infile:
for item in line.split(" ; "):
key, value = item.split(" - ", 1)
dicti[key.upper()] = value
</code></pre>
<p>请注意,我在分隔符周围包含空格,因此在拆分时它们将被删除。否则这些都会出现在你的字典里。另一种选择是使用<code>strip()</code>;这样,即使有更多(或没有)空间,它也能正常工作</p>
<pre><code>for line in infile:
for item in line.split(";"):
key, value = item.split("-", 1)
dicti[key.strip().upper()] = value.strip()
</code></pre>
<p>但是,如果您的某个记录中可能有一个分号或连字符<em>而不是</em>用作分隔符,我会在<code>.split()</code>调用中保留空格</p>
<p>现在我将更进一步,假设您希望这些值作为实际数字,而不仅仅是字符串。为此,我们将删除逗号并将其转换为整数</p>
<pre><code>for line in infile:
for item in line.split(";"):
key, value = item.split("-", 1)
dicti[key.strip().upper()] = int(value.strip().replace(",", ""))
</code></pre>
<p>如果有任何带有小数部分(小数点)的值,可以使用<code>float()</code>代替<code>int()</code>将其转换为浮点数</p>