擅长:python、mysql、java
<p>首先,您应该使用字符串的<code>rstrip()</code>方法,该方法删除字符串末尾的字符,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>def is_number(string):
try:
float(string.rstrip('$'))
except:
return False
return True
</code></pre>
<p>然后,如果我正确理解了第二段代码(因为格式有问题),结果如下所示:</p>
<pre class="lang-py prettyprint-override"><code>def value_liste(liste):
amount = 0
if not liste:
return 0.0
for string in liste:
if isnumber(string):
amount += float(string.rstrip(('$'))
return amount
</code></pre>
<p>在Python中,检查列表是否为空并不是惯用的方法。还可以简化表达式,检查字符串是否为数字。如果你想要一行,你可以写:</p>
<pre class="lang-py prettyprint-override"><code>my_list = ['10$', 'sock', '12.55$', 'pizza11']
total = sum(float(el.rstrip('$')) for el in my_list if el.endswith('$'))
</code></pre>