我对编程很新。
基本上在浮点数列表中,我希望我的程序打印每个以'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'对象不可订阅”所以我假设问题是由于列表包含浮点数。
答案 0 :(得分: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)
另请注意,您可以直接迭代列表。