python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決方法
發(fā)現(xiàn)問(wèn)題
寫python的時(shí)候出現(xiàn)了這個(gè)錯(cuò),然后網(wǎng)上的教程的解決方案幾乎都是——“重新定義下這個(gè)變量”,看的我一臉懵逼
后來(lái)發(fā)現(xiàn)原來(lái)是我把return None的方法賦給了變量,之后操作變量導(dǎo)致的,直接上代碼
for i in range(2000): read_lines = random.shuffle(read_lines) # 問(wèn)題出在這里了 print(read_lines)
咋一看是沒(méi)啥問(wèn)題,但是一運(yùn)行就報(bào)錯(cuò)
>>TypeError: ’NoneType’ object is not subscriptable
后來(lái)發(fā)現(xiàn)原來(lái) random.shuffle這個(gè)函數(shù)他是return None的,但是我把他賦值給了read_lines,導(dǎo)致后續(xù)在操作read_lines的時(shí)候一直都是這個(gè)報(bào)錯(cuò),包括打印read_lines也報(bào)錯(cuò)
這個(gè)是random庫(kù)里面的代碼(看他的注釋里面說(shuō)的是return None)
def shuffle(self, x, random=None): ''' Shuffle list x in place, and return None. Optional argument random is a 0-argument function returning a random float in [0.0, 1.0); if it is the default None, the standard random.random will be used. ''' if random is None: randbelow = self._randbelow for i in reversed(range(1, len(x))):# pick an element in x[:i+1] with which to exchange x[i]j = randbelow(i+1)x[i], x[j] = x[j], x[i] else: _int = int for i in reversed(range(1, len(x))):# pick an element in x[:i+1] with which to exchange x[i]j = _int(random() * (i+1))x[i], x[j] = x[j], x[i]
解決方案
把上面一行賦值語(yǔ)句改掉就好了
for i in range(2000): random.shuffle(read_lines) print(read_lines) content_list = []
總結(jié)
到此這篇關(guān)于python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable解決方法的文章就介紹到這了,更多相關(guān)python報(bào)錯(cuò)TypeError解決內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Ajax常用封裝庫(kù)——Axios的使用2. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲3. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))4. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera5. 使用Blazor框架實(shí)現(xiàn)在前端瀏覽器中導(dǎo)入和導(dǎo)出Excel6. Python中selenium庫(kù)的用法詳解7. Java向數(shù)據(jù)庫(kù)插入中文出現(xiàn)亂碼解決方案8. 在服務(wù)器端的XSLT過(guò)程中的編碼問(wèn)題9. 使用Python第三方庫(kù)pygame寫個(gè)貪吃蛇小游戲10. 微信小程序授權(quán)登錄的最新實(shí)現(xiàn)方案詳解(2023年)
