我会让代码说明一切,因为我已经对此感到头疼了一段时间。 以下是我为了简化调查而进行的一项测试。
# This is a python file containing a dictionary of tuples with RGB colours (R, G, B)
import random
colours = {
'black': (0, 0, 0,),
'white': (255, 255, 255,),
'red': (255, 0, 0,),
'green': (0, 255, 0,),
'blue': (0, 0, 255,),
'yellow': (255, 255, 0,),
'purple': (255, 0, 255,),
'brown': (139, 69, 19,),
'orange': (255, 165, 0,),
'cyan': (0, 255, 255,),
}
print('1', colours)
print('2', list(colours))
print('3', ((list(colours)).remove('black')))
print('4', random.choice((list(colours)).remove('black')))
print('5', colours[random.choice((list(colours)).remove('black'))])
这些测试打印语句分别打印:
1 {'黑色':(0,0,0),'白色':(255,255,255),'红色':(255,0,0),'绿色':(0,255,0),'蓝色':(0,0,255),'黄色':(255,255, 0),“紫色”:(255、0、255),“棕色”:(139、69、19),“橙色”:(255, 165,0),'cyan':(0,255,255)}
2 [“黑色”,“白色”,“红色”,“绿色”,“蓝色”,“黄色”,“紫色”,“棕色”,“橙色”,“青色” ']
3 无
回溯(最近通话最近):文件 “ C:/Users/macja/PycharmProjects/pygame_sentdex_tutorial/colours.py”, 第21行,在 print('4',random.choice((list(colours))。remove('black')))文件“ C:\ Users \ macja \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ random。 py”, 259行,选择中 i = self._randbelow(len(seq))TypeError:“ NoneType”类型的对象没有len()
因此,正如您所看到的,这一切似乎都归结于.remove('black') 我对解决方法并不特别感兴趣,这很容易。我想了解导致此问题的原因,因为我只是在学习python。