2017-06-06 73 views
-2

我試圖瞭解爲什麼我不能使用枚舉像我想要嘗試比較str值浮動爲了執行代碼一個if-else塊。例如,這是什麼工作:浮點對象不是枚舉的枚舉,但與範圍和if-else

testa = [23.12, 34.15, 25.12, 34.23] 

if testa[0] == 'word': 
    print('It's is a string') 
else: 
    print('Not a string') 

這成功地打印「不是一個字符串」。下一個代碼塊也可以工作:

for i in range(len(testa)): 
    if testa[i] == 'word': 
     print('Its a string') 
    else: 
     print('Not a string') 

上述兩個代碼塊按預期工作。現在,我想用枚舉:

for i, number in enumerate(testa, start=0): 
    if number[i] == 'word': 
     print("Its a string") 
    else: 
     print("Not a string") 
TypeError: 'float' object is not subscriptable 

重要的是,我能夠與特定指數跟上,所以我想我可能只是給它i的索引計數器,讓枚舉採取增加它的護理它自己的,但其他事情正在發生,我沒有看到。

+0

我不確定你明白'枚舉'的作用。我的猜測是你想運行'如果testa [i] =='word''。 – slallum

+0

@slallum我需要迭代列表並測試其中的每個元素 – Biggen

回答

3

With enumerate您獲得value的號碼已經是testa[i]。它是矩陣的元素,一個浮點數,所以你不能索引它。將其更改爲if number == 'word'

+0

我可以發誓說,我實際上在我發佈到SO之前嘗試過。無論是我感到困惑或以某種方式搞砸測試代碼。謝謝,我一回到家就會試試看! – Biggen

1

使用number而不是number[i]

請記住,你已經在迭代testa了。