![](/img/trans.png)
[英]How filter a list for elements that can be converted from strings to floats without raising ValueError?
[英]How to filter a list of floats based on their elements?
我是编程新手。
基本上在浮点列表中,我希望我的程序打印以'1'或'-1'开头的每个浮点数。 到目前为止,这就是我所拥有的。
def oneminus(L):
for i in range(len(L)):
if L[i][0]=='1':
print(L[i])
elif L[i][0]=='-' and L[i][1]=='1':
print(L[i])
但是,当我运行程序时,出现错误“ TypeError:'float'对象不可下标”,因此我假设问题是由于列表包含浮点数。
问题在于您将元素视为字符串,而不是浮点数。 与PHP和Javascript不同,Python没有隐式类型强制。 如果要获取字符串表示形式,则必须使用str
或repr
对其进行显式转换。
你想要的是像
def oneminus(L):
for x in L:
if str(x).startswith('1') or str(x).startswith('-1'):
print(x)
您可以利用str.strip
将其缩短。
def oneminus(L):
for x in L:
if str(x).strip('-').startswith('1'):
print(x)
还请注意,您可以直接遍历列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.