【问题标题】:Why are my lists not being created properly in Python 2.7?为什么我的列表没有在 Python 2.7 中正确创建?
【发布时间】:2014-10-27 02:40:30
【问题描述】:

我有一个包含三个键的字典对象。每个键包含三个 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]

如何创建我的列表,以便它们包含每个列表的适当值? IE,rList,list,只包含每个key的列表项的R值,gList只包含每个key的列表项的G值,等等?

感谢您的意见!

【问题讨论】:

    标签: python list python-2.7 dictionary rgb


    【解决方案1】:

    这不会产生 3 个空列表!

    rList=gList=bList=[]
    

    您只会获得对同一列表的 3 次引用。写成 3 行就行了

    rList = []
    gList = []
    bList = []
    

    【讨论】:

    猜你喜欢
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2016-05-30
    • 1970-01-01
    相关资源
    最近更新 更多