如何根据元素过滤浮点数列表?
我对编程还比较陌生。
简单来说,我想让我的程序从一个浮点数的列表中打印出所有以'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' object is not subscriptable”。所以我猜这个问题是因为列表里包含了浮点数。
1 个回答
1
问题在于你把这些元素当成了字符串,而不是浮点数。跟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)
另外,注意你可以直接遍历一个列表。