在字典中添加数组,在更多数组中?

时间:2012-06-07 21:12:45

标签: python

在字典中添加数组,在更多数组中添加。

我问了一个问题,Jakebird451帮助了我。但我现在有很多问题。

fruits = [{
    'name':"apple",
    'color':["red","green"],
    'weight':1
}, {
    'name':"banana",
    'color':["yellow","green"],
    'weight':1
}, {
    'name':"orange",
    'color':"orange",
    'weight':[1,2]
}, {
    'name':"pear",
    'color':"orange",
    "size" : [
                    {
                        "weight" : 4,
                        "mass" : 1.6
                    },
                    {
                        "weight" : 4,
                        "mass" : 2
                    },
                    {
                        "weight" : 4,
                        "mass" : 2.5
                    }
                ]
}]

如果另一个字典有另一个数组怎么办? 我如何使用此功能来获得体重和质量?

def findCarByColor(theColor):
    array=[]
    for x in carList: 
        if theColor in x['Color']:
            array.append(x['name']+" "+x['weight'])
    return array
print findit2("red")

2 个答案:

答案 0 :(得分:1)

如果你想处理这两种情况,假设你在问题中有变量fruits

def findItByColor(theColor):
    array=[]
    for x in fruits: 
        if theColor in x['color']:
            try:
                array.append(x['name']+" "+ str(x['weight']))
            except KeyError:
                size = ' '.join( [ '[Weight %s Mass %s]'
                                   % (str(item['weight']),str(item['mass']))
                         for item in x['size'] ])
                array.append( x['name']+" "+ size )
    return array

print findItByColor("orange")

打印:

['orange [1, 2]', 'pear [Weight 4 Mass 1.6] [Weight 4 Mass 2] [Weight 4 Mass 2.5]']

这个查询:

print findItByColor("green")

返回:

['apple 1', 'banana 1']

答案 1 :(得分:0)

看起来你已经在字典中制作了“尺寸”键的重量和质量元素。

您的代码需要相应修改:

def findCarByColor(theColor):
    array=[]
    for x in carList: 
        if theColor in x['Color']:
            array.append(x['name']+" "+x['size']['weight'] +" "+x['size']['mass'] )
    return array
print findit2("red")

但是,这只适用于您的“梨”示例,因为您存储权重值的方式不一致。

修改

您不断更改示例中的基础数据结构,这意味着findCarByColor()的代码也需要更改。

我建议

  1. 确切地确定您需要存储的数据
  2. 标准化您的数据结构。为什么“梨”字典有一个大小列表,但其他字典没有?通过尽可能保持数据简洁和一致,您可以更简单地操作它(就像在函数中一样)。