<p>一个文件已经是一个行的iterable了,所以你不必做任何事情就可以把它变成一个行的iterable。你知道吗</p>
<p>如果您想将它特别地放入一个<em>行列表</em>,您可以对任何其他iterable执行相同的操作:对它调用<a href="https://docs.python.org/3/library/functions.html#list" rel="nofollow">^{<cd1>}</a>:</p>
<pre><code>with open(filename) as f:
lines = list(f)
</code></pre>
<p>但是,如果您想将其转换为一个浮动列表,那么开始使用哪种类型的iterable并不重要,因此您最好按原样使用该文件:</p>
<pre><code>with open(filename) as f:
floats = [float(line) for line in f]
</code></pre>
<p>(请注意,<a href="https://docs.python.org/3/library/functions.html#float" rel="nofollow">^{<cd2>}</a>会忽略尾随空格,因此您使用的方法是去掉换行符还是保留换行符并不重要。)</p>
<hr/>
<p>从评论中:</p>
<blockquote>
<p>now i just need to find out how to assign the list to another list like jan = 1.89, feb = 1.99 and so on</p>
</blockquote>
<p>如果您知道您正好有12个值(如果您没有,这将是一个错误),您可以编写以下哪一个看起来更好:</p>
<pre><code>jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec = (float(line) for line in f)
jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec = map(float, f)
</code></pre>
<p>然而,像这样有12个独立的变量通常是个坏主意。如果不知道您打算如何使用它们,很难确定(请参见<a href="http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html" rel="nofollow">Keep data out of your variable names</a>了解自己做出决定的相关背景),但是最好有一本字典,使用月份名称作为关键字:</p>
<pre><code>floats = dict(zip('jan feb mar apr may jun jul aug sep oct nov dec'.split(),
map(float, f))
</code></pre>
<p>或者将值留在列表中,并将月份名称用作该列表中索引的符号名称:</p>
<pre><code>>>> jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec = range(12)
>>> print(floats[mar])
2.14
</code></pre>
<p>使用<a href="https://docs.python.org/3/library/enum.html#enum.IntEnum" rel="nofollow">^{<cd3>}</a>或<a href="https://docs.python.org/3/library/collections.html#collections.namedtuple" rel="nofollow">^{<cd4>}</a>可能更好。同样,这实际上取决于导入数据后计划如何使用它们。你知道吗</p>