0

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

我问了一个问题,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")
4

2 回答 2

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']
于 2012-06-07T21:29:38.547 回答
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. 标准化您的数据结构。为什么“梨”的字典有一个大小列表,而其他的却没有?通过尽可能保持数据简洁和一致,您可以更简单地操作它(如在您的函数中)。
于 2012-06-07T21:28:03.487 回答