range 賦值給一變量后,為嘛不能對那個變量更新
L=range(0,3)
L.append(1)
print(L
#這個語法會報錯
AttributeError: 'range' object has no attribute 'append'#報錯
#如果我不用range,而是L=[0,1,2],那樣就可以對L做增加,用range生成的list沒法變,咋回事
L=range(0,3)
L.append(1)
print(L
#這個語法會報錯
AttributeError: 'range' object has no attribute 'append'#報錯
#如果我不用range,而是L=[0,1,2],那樣就可以對L做增加,用range生成的list沒法變,咋回事
2019-08-23
舉報
2019-08-23
原因編譯器已經告訴你了,range沒有append函數。怎么辦呢?我們知道append是針對于list的,而你寫的L=range(0,3)是個list嗎?看起來是,其實不是的。那么正確的做法是先創建一個數據為range(0,3)的list,再用append,就不會報錯了,如:
L=[x for x in range(0,3)]
L.append(1)
print(L)
2019-08-23
range對象跟list集合不是一個東西。list集合有方法append,range對象沒有append這個方法。這就是規則吧。沒有這個方法當然不能用了。