擅长:python、mysql、java
<p>你可以用字典代替。这里有几个步骤:</p>
<ol>
<li>我们希望将每个数字映射到一个字符,这样我们就可以创建一个字典,其中输入字符作为键,输出字符作为值。在</li>
<li>你不能迭代一个数字输入,所以我们必须把它转换成一个字符串来依次访问每个字符。在您的示例中,值已经是一个字符串(<code>'123'</code>),但是没有理由不能让函数同时接受数值和字符串输入。在</li>
<li>替换是在list comprehension中完成的,它自然返回一个list。所以您需要调用<code>join()</code>将所有字符重新连接到一个字符串中。在</li>
</ol>
<p>一种方法如下:</p>
<pre><code>def number2char(number):
search_array = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
replace_array = ["a", "b", "c", "d", "d", "e", "f", "g", "h", "i"]
replace_dict = dict(zip(search_array, replace_array))
num_2_char = ''.join([replace_dict.get(char, '_')
for char in str(number)])
return num_2_char
a = number2char(123)
</code></pre>
<p>在本例中,我使用了<code>replace_dict.get(str(item), '_')</code>,这样如果有人给出了一个不在{<cd4>}中的输入,代码就不会崩溃;相反,他们只会返回下划线。可能有更好的方法来处理这个问题,但是它比仅仅以<code>replace_dict[item]</code>的形式访问字典安全。在</p>