這是我的第一條消息,我是學生,我開始學習python和一位非常喜歡python one-內襯.. 我已經得到了一些麻煩與Python解釋器,在這裏我的問題:Python 3.3解釋器和一行代碼問題(4行語句正常工作...)
我有一些麻煩與Python解釋器,我想一個4線轉換if
/else
聲明一個班輪在一個功能程序。
代碼:
# ll is a {}
# with one index initialized like this:
# {'': ['word1', 'word2', 'word3', 'word n', '...']}
# with a lot of word from a book
i, a=0, ll['']
# so here a is an array like: ['word1', 'word2', 'word3', 'word n', '...']
while i < len(a)-1:
i+=1
if a[i-1] not in ll:
ll[a[i-1]]=[a[i]]
else:
ll[a[i-1]].append(a[i])
這種運作良好,但如果我嘗試更換此:
if a[i-1] not in ll:
ll[a[i-1]]=[a[i]]
else:
ll[a[i-1]].append(a[i])
這這一個班輪:
ll[a[i-1]] = [a[i]] if a[i-1] not in ll else ll[a[i-1]].append(a[i])
然後,我得到此錯誤輸出:
AttributeError: 'NoneType' object has no attribute 'append'
(它工作在第一迭代,陣列已正確填寫,則數組突然改變爲None
...從來沒有與4行語句是一樣的看到了這一點。請幫我)
詳細說明:我在使用Python 3.3.4(從python.org安裝)的Windows上運行
當然,單線程程序應該可以正常工作,但是在我的例子中沒有太多的數據,但是在我的真實程序中,上面的錯誤...這真的很煩人!這是一個Python錯誤? (對我來說顯然是肯定的,這不是我所遇到的,即使我是一個初學者唯一的一個。)
'append'就地修改列表,並將返回None。這不是一個錯誤! – jonrsharpe
我知道它,但爲什麼它不能把一個現有的列表,並把一個像「應該」的字符串?這是一個錯誤.. –
它應該正常工作,它在我的if/else語句中工作,正如我已經解釋過的,請閱讀我的文章 –