擅长:python、mysql、java
<p><code>list2env</code>的字面等价物是<code>globals().update(...)</code>或<code>globals()[...] = ...</code>,但通常使用显式字典会更好</p>
<p>正如其他人所建议的,显式变量类似于:</p>
<pre><code>df = {
os.path.splitext(filename)[0]: pd.read_excel(filename)
for filename in os.listdir()
}
</code></pre>
<p>然后可以使用<code>df["name"]</code>引用每个数据帧</p>
<p>如果要将所有这些对象都制作成顶级对象,可以使用以下方法:</p>
<pre><code>globals().update(df)
</code></pre>
<p>或者,在循环中:</p>
<pre><code>for filename in os.listdir():
bare_name = os.path.splitext(filename)[0]
globals()[bare_name] = pd.read_excel(filename)
</code></pre>
<p>但是,这将使调试变得更加困难,存在用加载的数据帧替换内置函数和模块的风险,并且通常会导致每个阅读代码的人说“请不要这样做”。最多,在用于初始探索的笔记本中,它可能是正常的,而在生产代码中,它永远不会</p>