<p>因此,我有一个函数,它获取一个列表,并根据值所代表的内容更改每个值的类型:</p>
<pre><code>def change_list(x):
"""
Convert every str in x to an int if it represents a
integer, a float if it represents a decimal number, a bool if it is
True/False, and None if it is either 'null' or an empty str
>>> x = [['xy3'], ['-456'], ['True', '4.5']]
>>> change_list(x)
>>> x
[['xy3' , -456], [True], [4.5]]
"""
for ch in x:
for c in ch:
if c.isdigit() == True:
c = int(c)
</code></pre>
<p>我只发布了部分代码,我觉得一旦我可以排序,我就可以在otherif/elif/else中应用一个类似的方法,以便能够把所有的代码都弄清楚。我的问题是,当我应用这种方法,然后再次调用x时,列表仍然以字符串形式返回,而不是int、float或bools。你知道吗</p>
<p>如果我在执行这个函数后调用x,我会得到:</p>
<pre><code>x = [['xy3'], ['-456'], ['True', '4.5']]
</code></pre>
<p>而不是函数中示例代码中的内容。
我不确定出了什么问题,任何建议都会有帮助的。你知道吗</p>