为什么在Python2.7中没有正确创建我的列表?

2024-04-27 12:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带三个键的dictionary对象。每个键包含三个RGB值

>>> dictObj = {}
>>> dictObj['key1'] = ["123,12,43", "42,34,1", "38,225,132"]
>>> dictObj['key2'] = ["234,92,109", "227,5,229", "156,4,2"]
>>> dictObj['key3'] = ["15,123,82", "128,11,130", "78,39,1"]

我的目标是获取每个键的RGB值列表,并获取每个项的R、每个项的G和每个项的B来创建三个列表,仅包含所有三个键的R值、所有三个键的G值和所有三个键的B值

我实现了一系列for循环来调用每个键,拆分每个键列表中的项,并尝试将R、G和B值附加到每个相应的列表中

>>> rList=gList=bList=[]
>>> for key in dictObj:
        for RGBval in dictObj[key]:
            RGBval = RGBval.split(',')
            rList.append(RGBval[0])
            gList.append(RGBval[1])
            bList.append(RGBval[2])

我运行循环,但是每个列表都包含完全相同的值。我不明白为什么会这样。如果在循环中打印RGBval[0]、RGBval[1]和RGBval[2],则每次迭代都会显示不同的值。但是,当通过append方法创建三个列表时,打印时,每个列表包含完全相同的值,这是我的输出

>>> print rList
['123', '12', '43', '42', '34', '1', '38', '225', '132', '15', '123'...etc]
>>> print gList
['123', '12', '43', '42', '34', '1', '38', '225', '132', '15', '123'...etc]
>>> print bList
['123', '12', '43', '42', '34', '1', '38', '225', '132', '15', '123'...etc]

如何创建列表,使其包含每个列表的适当值?例如,rList,list,只包含每个键列表项的R值,gList只包含每个键列表项的G值,等等

谢谢你的意见


Tags: 对象keyin列表fordictionaryetcrgb