.remove()方法在应返回列表时返回None

时间:2018-09-22 19:15:52

标签: python python-3.x list methods return

我会让代码说明一切,因为我已经对此感到头疼了一段时间。 以下是我为了简化调查而进行的一项测试。

# 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。

0 个答案:

没有答案